valores multidimensional in_array elemento comparar buscar array_search array_diff array php arrays multidimensional-array array-intersect

php - in_array - Usando array_intersect en una matriz multidimensional



in_array multidimensional php (2)

Use array_uintersect() para usar una función de comparación personalizada, como esta:

$arr1 = array( array(''name'' => ''asdfjkl;'', ''value'' => ''foo''), array(''name'' => ''qwerty'', ''value'' => ''bar''), array(''name'' => ''uiop'', ''value'' => ''baz''), ); $arr2 = array( array(''name'' => ''zxcv'', ''value'' => ''stuff''), array(''name'' => ''asdfjkl;'', ''value'' => ''foo''), array(''name'' => ''12345'', ''value'' => ''junk''), array(''name'' => ''uiop'', ''value'' => ''baz''), ); $intersect = array_uintersect($arr1, $arr2, ''compareDeepValue''); print_r($intersect); function compareDeepValue($val1, $val2) { return strcmp($val1[''value''], $val2[''value'']); }

que cede, como esperarías:

Array ( [0] => Array ( [name] => asdfjkl; [value] => foo ) [2] => Array ( [name] => uiop [value] => baz ) )

Tengo dos arreglos que se ven así:

Array ( [0] => Array ( [name] => STRING [value] => STRING ) [1] => Array ( [name] => STRING [value] => STRING ) [2] => Array ( [name] => STRING [value] => STRING ) )

y me gustaría poder replicar array_intersect comparando el ID de los sub arrays dentro de los dos arreglos maestros. Hasta ahora, no he tenido éxito en mis intentos. :(


function compareDeepValue($val1, $val2) { return strcmp($val1[''value''], $val2[''value'']); }

Asegúrese de que la clave val2 exista en la matriz val1, porque la función ordena la matriz primero. Muy extraño.