// $list 为要处理的多维组数 $index = 0; array_walk_recursive($list, function ($item, $key) use (&$keyword, &$index, &$list) { // 要查询的字符串在list的哪个key里面,$item为当前遍历的$key对应的$value值 // 如果要找的字符串在 member_info 这里key里面 if ($key == 'member_info') { // 进行字符串对比逻辑 if ( strpos($item['fullname'], $keyword) === false && strpos($item['mobile'], $keyword) === false ) { // 如果未找到符合条件的,删除当前$list的索引值 unset($list[$index]); } // 注意,此索引不可写到判断逻辑外面,array_walk_recursive会把$list从外到内全部深层遍历一遍,因此要写在$key的判断逻辑里面 $index++; } }); // 最后重组索引 $list = array_values($list);