I have 4 arrays, which are going to be different every time I run my code. Sometimes, maybe empty. I am using array_intersect
to get the common value from the set of arrays and if any one of the array is empty it returns me an empty array. I want array_intersect
to ignore empty array's.
Example:
$array1 = array('441', '442', '443');
$array2 = array('441', '443');
$array3 = array('441', '442',);
$array4 = array();
var_dump(array_intersect($array1, $array2, $array3, $array4));
// Returns
array('');
// Required
array('441');
How do I make it ignore $array4
and give an output of 441
If you store your arrays as an array you can do this:
<?php
// create array of arrays
$array[] = array('441', '442', '443');
$array[] = array('441', '443');
$array[] = array('441', '442');
$array[] = array();
// filter out empty array
$array = array_filter($array);
// pass in array (inline argument unpacking PHP > 5.6)
print_r(array_intersect(...$array));
Array
(
[0] => 441
)
https://3v4l.org/MD3r2
$tempArray = [];
if (count($g_arr) >0) $tempArray[] = $g_arr;
if (count($c_arr) >0) $tempArray[] = $c_arr;
if (count($k_arr) >0) $tempArray[] = $k_arr;
if (count($m_arr) >0) $tempArray[] = $m_arr;
if (count($p_arr) >0) $tempArray[] = $p_arr;
$intersect = call_user_func_array('array_intersect', $tempArray);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With