Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多维数组过滤[PHP]_Php_Arrays_Foreach_Array Filter - Fatal编程技术网

多维数组过滤[PHP]

多维数组过滤[PHP],php,arrays,foreach,array-filter,Php,Arrays,Foreach,Array Filter,我正在尝试通过[channel]将此阵列的部分文件归档(如下所示): 所以结果应该是(如果通道是恍惚状态): 。。。我试过foreach循环。。。使不安但没有多大成功。。还有阵列过滤器 对于foreach,我试着这样做(但我不知道在循环结束后如何更新$show_数据数组…嗯,我对php非常熟悉: foreach($show_data as $idindex => $codearray){ foreach($codearray as $codestring =>

我正在尝试通过[channel]将此阵列的部分文件归档(如下所示):

所以结果应该是(如果通道是恍惚状态):

。。。我试过foreach循环。。。使不安但没有多大成功。。还有阵列过滤器

对于foreach,我试着这样做(但我不知道在循环结束后如何更新$show_数据数组…嗯,我对php非常熟悉:

foreach($show_data as $idindex => $codearray){
            foreach($codearray as $codestring => $paramarray) {       
                        foreach($paramarray as $param => $val) {    
                                if(preg_grep('/trance/', $paramarray)){
                                     unset($paramarray[$val]);
                                  }}}}
        print_r($show_data);
我也尝试过(但如果第一个是trance,那么它不会过滤掉其余的..即使是techno…我需要它在[5d1838c3aa6344e3109ab4f0122492f7]级别过滤掉):


提前谢谢!

试试这个:它会让你受益的

$output_array();
$i = 0;
foreach ($show_data as $data) {
    foreach ($data as $subdata) {
        if ($subdata['channel'] == 'trance') {
            $output_array[$i] = $subdata;
        }
    }
    $i++;
}

echo '<pre>';
print_r($output_array);
die;
$output_array();
$i=0;
foreach($show_data as$data){
foreach($data作为$subdata){
如果($subdata['channel']=='trance'){
$output_数组[$i]=$subdata;
}
}
$i++;
}
回声';
打印(输出数组);
死亡
尝试以下代码:-

Array
(
    [5d1838c3aa6344e3109ab4f0122492f7] => Array
        (
            [dj_name] => Emilian
            [channel] => trance
        )

    [e13268de7c56db42f8aeab2ab4c607f2] => Array
        (
            [dj_name] => John Doe
            [channel] => trance
        )

)
尝试
if(preg_grep('/trance/',$val)){
$genre = 'trance';
$data = array_filter($dataraw, function($fs) use ($genre) {
 return current($fs)['channel'] === $genre;
});
$output_array();
$i = 0;
foreach ($show_data as $data) {
    foreach ($data as $subdata) {
        if ($subdata['channel'] == 'trance') {
            $output_array[$i] = $subdata;
        }
    }
    $i++;
}

echo '<pre>';
print_r($output_array);
die;
  $result = [];
        foreach($arr as $key=>$val){
                foreach($val as $k=>$v){
                    if($v['channel']=='trance'){
                        $result[$k] = $v;
                    }
                }
        }

  echo '<pre>'; print_r($result);
Array
(
    [5d1838c3aa6344e3109ab4f0122492f7] => Array
        (
            [dj_name] => Emilian
            [channel] => trance
        )

    [e13268de7c56db42f8aeab2ab4c607f2] => Array
        (
            [dj_name] => John Doe
            [channel] => trance
        )

)