我正在尝试使用“nombre_entrada”、“precio_productor”和“id_funcion”来比较两个多维数组之间的不匹配项。我尝试使用 array_search/array_column 但没有用。我需要的是获取一个包含不匹配项目的新数组。数组 1Array( [0] => Array ( [nombre_entrada] => Entrada General [precio_productor] => 250 [id_funcion] => 907 ) [1] => Array ( [nombre_entrada] => Entrada General [precio_productor] => 300 [id_funcion] => 907 ) [2] => Array ( [nombre_entrada] => Entrada General [precio_productor] => 350 [id_funcion] => 907 ) [3] => Array ( [nombre_entrada] => 2 entradas x [precio_productor] => 400 [id_funcion] => 907 ))阵列 2Array( [0] => Array ( [nombre_entrada] => Entrada General [precio_productor] => 350 [id_funcion] => 907 ) [1] => Array ( [nombre_entrada] => 2 entradas x [precio_productor] => 400 [id_funcion] => 907 ))在数组 1 中,索引 0 和 1 不存在于数组 2 中,因此我需要创建一个包含这些项目的最终数组。最终阵列Array( [0] => Array ( [nombre_entrada] => Entrada General [precio_productor] => 250 [id_funcion] => 907 ) [1] => Array ( [nombre_entrada] => Entrada General [precio_productor] => 300 [id_funcion] => 907 ))
3 回答
HUWWW
TA贡献1874条经验 获得超12个赞
这通常是array_diff
.
您不能array_diff
直接使用for 它,因为它比较数组项的字符串表示以找出差异,并且数组没有不同的字符串表示。(它们都只是转换为“数组”。)
PHP 可以比较数组,如果您使用,array_udiff
您可以直接在比较函数中比较它们,而无需转换为字符串。
$result = array_udiff($array1, $array2, function($a, $b) { return $a <=> $b; });
胡子哥哥
TA贡献1825条经验 获得超6个赞
我能够以这种方式创建数组
$newArray = array();
foreach ($detectadas as $item) {
if (
array_search($item['nombre_entrada'], array_column($entradasResult2, 'nombre_entrada')) === false OR
array_search($item['precio_productor'], array_column($entradasResult2, 'precio_productor')) === false OR
array_search($item['id_funcion'], array_column($entradasResult2, 'id_funcion')) === false
) {
array_push( $newArray, $item );
}
}
- 3 回答
- 0 关注
- 258 浏览
添加回答
举报
0/150
提交
取消