Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在某些阵列中查找类似的子阵列_Php_Arrays_Algorithm - Fatal编程技术网

Php 在某些阵列中查找类似的子阵列

Php 在某些阵列中查找类似的子阵列,php,arrays,algorithm,Php,Arrays,Algorithm,有一些数组: $a = array( 0 => array('value' => 1000, 'name' => 'AA1'), 1 => array('value' => 2000, 'name' => 'AA2'), 2 => array('value' => 3000, 'name' => 'AA3'), 3 => array('value' => 4000, 'name' => 'AA4'),

有一些数组:

$a = array(
   0 => array('value' => 1000, 'name' => 'AA1'),
   1 => array('value' => 2000, 'name' => 'AA2'),
   2 => array('value' => 3000, 'name' => 'AA3'),
   3 => array('value' => 4000, 'name' => 'AA4'),
);
$b = array(
   0 => array('value' => 1000, 'name' => 'BB1'),
   1 => array('value' => 3000, 'name' => 'BB2'),
   2 => array('value' => 1700, 'name' => 'BB3'),
   3 => array('value' => 1200, 'name' => 'BB4'),
);
$c = array(
   0 => array('value' => 3000, 'name' => 'CC1'),
   1 => array('value' => 4000, 'name' => 'CC2'),
   2 => array('value' => 4300, 'name' => 'CC3'),
   3 => array('value' => 5000, 'name' => 'CC4'),
);
如何使用阵列$a、b和$c中的相同变体创建新阵列?并按“值”字段排序

$d = array(
   0 => array('value' => 3000, 'name' => 'AA3');
);

真实示例:

我不确定这是否是您想要的

结果是一个数组,其中包含给定数组中的所有重复值:

//Lets merge them into a big array to work in a easier way;
//It will be a single level array as follow: [a0] => 1000, [a1] => 2000 etc.
$array = array('a' => $a, 'b' => $b, 'c' =>$c);
foreach($array as $letter => $subArray){
    foreach($subArray as $key => $values){
        $newArray[$letter.$key] = $values['value'];
    }
}

$uniques = array_unique($newArray); //getting the non-repeated values
$repeated = array_diff_assoc($newArray, $uniques); // stripping them out
$final = array_unique($repeated); //cleaning the repeated values to just 1 of each

print_r($final);
结果

Array
(
    [b0] => 1000
    [b1] => 3000
    [c1] => 4000
)
结果数组:

array
(
    '98' => array
        (
            'id_variant' => 98
            'name' => 3 hour
            'time' => 10800
        )

    '173' => array
        (
            'id_variant' => 173
            'name' => 3 hour
            'time' => 10800
        )

    '321' => array
        (
            'id_variant' => 321
            'name' => 3 hour
            'time' => 10800
        )

)

我不明白你的输出标准是什么。你能更好地解释一下吗?需要找到所有具有类似“值”的子数组,如果该数组应该具有具有相同值的所有元素,你如何“排序”它们?不知道这就是为什么我要问:)只需要获得“d”-变量为什么数组
d
有一个字段
名称
具有值
AA1
?标准是什么?这不是正确答案,因为我在数组$c中没有值“1000”,而在数组$b中不存在值“4000”。
array
(
    '98' => array
        (
            'id_variant' => 98
            'name' => 3 hour
            'time' => 10800
        )

    '173' => array
        (
            'id_variant' => 173
            'name' => 3 hour
            'time' => 10800
        )

    '321' => array
        (
            'id_variant' => 321
            'name' => 3 hour
            'time' => 10800
        )

)