3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = array( 'green' => 'keyword', 'orange', 'keyword', 'black' => array( 'purple' => 'text', 'brown', 'pink' => 'keyword' ), 'white' => array( 'red', 'yellow' => 'keyword', 'blue' ), 'violet', 'gray' ); $arr = array(); $str = 'keyword'; $arr[] = array_filter($array, function($var) use ($str) { global $arr; if(is_array($var)){ $arr[] = array_filter($var, function($var2) use ($str) { return preg_match("/$str/i", $var2); }); }else{ return preg_match("/$str/i", $var); } }); function getL2Keys($array){ $result = array(); foreach($array as $sub) { $result = array_merge($result, $sub); } return $result; } $arr = getL2Keys($arr); echo '<pre>'; print_r($arr);
Output for 5.5.0 - 5.5.35, 5.6.0 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
<pre>Array ( [pink] => keyword [yellow] => keyword [green] => keyword [0] => keyword )

preferences:
139.2 ms | 408 KiB | 5 Q