php 二维数组过滤相同的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 二维数组过滤相同的值相关的知识,希望对你有一定的参考价值。

Array
(
[0] => Array
(
[names] => abc
[staus] => 1
)

[1] => Array
(
[names] => ddd
[staus] => 1
)

[2] => Array
(
[names] => ddd
[staus] => 1
)
)
如何过滤相同的值
变成这样

Array
(
[0] => Array
(
[names] => abc
[staus] => 1
)

[1] => Array
(
[names] => ddd
[staus] => 1
)
)

参考技术A $tmp=array();
$s=array();//你的数组
foreach($s as $k=>$v)
if(in_array($v['name'],$tmp))
unset($s[$k]);

$tmp[]=$v['name'];

var_dump($s);

参考技术B function multi_unique($array) 
   foreach ($array as $k=>$na)
       $new[$k] = serialize($na);
   $uniq = array_unique($new);
   foreach($uniq as $k=>$ser)
       $new1[$k] = unserialize($ser);
   return ($new1);

本回答被提问者采纳
参考技术C 恩恩额 不错的啊

求助:PHP如何判断二维数组哪些竖列的值相同?

例子:
M[0][0] M[0][1] M[0][2]
M[1][0] M[1][1] M[1][2]
M[2][0] M[2][1] M[2][2]

$data[$i][$j] 数组一个很大的。知道$i和$j的最大值
以上输出
000
010
000

如何判断上面那些竖列的值都为0?

<?php
$m = array(
    array(0, 0, 0),
    array(0, 1, 0),
    array(0, 0, 0),
);
$max_i = 3;
$max_j = 3;

for ($column=0; $column!=$max_j; $column++) 
    $result = true;
    for ($row=0; $row!=$max_i; $row++) 
        if ($m[$row][$column] != 0) 
            $result = false;
            break;
        
    
    echo "第$column列".($result ? '全' : '不全')."为空\\n";

输出:

第0列全为空

第1列不全为空

第2列全为空

参考技术A 竖列???就是M[0][0]、M[1][0]、M[2][0]。。。。。。的值呗
$count = $i的最大值
for($i=0; $i++; $<$count)
echo M[$i][0];
echo '<br />';
追问

for($i = 0; $i<$count; $i++)
for($j = 0; $j < $count2;$j++)
#需要的是判断M[0][0]、M[1][0]、M[2][0] / M[0][1]、M[1][1]、M[2][1] / M[0][2]、M[1][2]、M[2][2]是值否相同



以上是关于php 二维数组过滤相同的值的主要内容,如果未能解决你的问题,请参考以下文章

请教各位老师php二维数组 查找相同的值合并 如何写

php 怎么在二维数组中查看一个值是不是存在

请教thinkphp 二维数组值去重怎么去的哦

PHP中怎么从一个二维数组中随机取出一个值?

php 一个二维数组求二维数组内的并集

PHP 想从1组二维数组里取1个下标的值去其他数组查询另1个下标的值,然后用查询出来值替换原来二维数组里的