Maison > développement back-end > tutoriel php > php数组过滤问题?

php数组过滤问题?

WBOY
Libérer: 2016-06-06 20:22:27
original
1355 Les gens l'ont consulté

怎么把类似这样的数组过

<code>["Q"] => array(4) {
        [0] => array(11) {
          ["id"] => string(1) "1",["k"] => string(1) "Q"
        }
         [1] => array(11) {
          ["id"] => string(1) "2",["k"] => string(1) "H"
        }
        [2] => array(11) {
          ["id"] => string(1) "3", ["k"] => string(1) "V"
        }
         [3] => array(11) {
          ["id"] => string(1) "4",  ["k"] => string(1) "V"
        }
}
["V"] => array(4) {
        [0] => array(11) {
          ["id"] => string(1) "1",["k"] => string(1) "Q"
        }
         [1] => array(11) {
          ["id"] => string(1) "2",["k"] => string(1) "H"
        }
        [2] => array(11) {
          ["id"] => string(1) "3", ["k"] => string(1) "V"
        }
         [3] => array(11) {
          ["id"] => string(1) "4",  ["k"] => string(1) "V"
        }
}
["H"] => array(4) {
        [0] => array(11) {
          ["id"] => string(1) "1",["k"] => string(1) "Q"
        }
         [1] => array(11) {
          ["id"] => string(1) "2",["k"] => string(1) "H"
        }
        [2] => array(11) {
          ["id"] => string(1) "3", ["k"] => string(1) "V"
        }
         [3] => array(11) {
          ["id"] => string(1) "4",  ["k"] => string(1) "V"
        }
}
</code>
Copier après la connexion
Copier après la connexion

滤成这样

<code>["Q"] => array(1) {
        [0] => array(11) {
          ["id"] => string(1) "1"
          ["k"] => string(1) "Q"
        }
}
["V"] => array(2) {
        [0] => array(11) {
          ["id"] => string(1) "3"
          ["k"] => string(1) "V"
        }
         [1] => array(11) {
          ["id"] => string(1) "4"
          ["k"] => string(1) "V"
        }
}
["H"] => array(1) {
         [0] => array(11) {
          ["id"] => string(1) "2"
          ["k"] => string(1) "H"
        }
}
</code>
Copier après la connexion
Copier après la connexion

回复内容:

怎么把类似这样的数组过

<code>["Q"] => array(4) {
        [0] => array(11) {
          ["id"] => string(1) "1",["k"] => string(1) "Q"
        }
         [1] => array(11) {
          ["id"] => string(1) "2",["k"] => string(1) "H"
        }
        [2] => array(11) {
          ["id"] => string(1) "3", ["k"] => string(1) "V"
        }
         [3] => array(11) {
          ["id"] => string(1) "4",  ["k"] => string(1) "V"
        }
}
["V"] => array(4) {
        [0] => array(11) {
          ["id"] => string(1) "1",["k"] => string(1) "Q"
        }
         [1] => array(11) {
          ["id"] => string(1) "2",["k"] => string(1) "H"
        }
        [2] => array(11) {
          ["id"] => string(1) "3", ["k"] => string(1) "V"
        }
         [3] => array(11) {
          ["id"] => string(1) "4",  ["k"] => string(1) "V"
        }
}
["H"] => array(4) {
        [0] => array(11) {
          ["id"] => string(1) "1",["k"] => string(1) "Q"
        }
         [1] => array(11) {
          ["id"] => string(1) "2",["k"] => string(1) "H"
        }
        [2] => array(11) {
          ["id"] => string(1) "3", ["k"] => string(1) "V"
        }
         [3] => array(11) {
          ["id"] => string(1) "4",  ["k"] => string(1) "V"
        }
}
</code>
Copier après la connexion
Copier après la connexion

滤成这样

<code>["Q"] => array(1) {
        [0] => array(11) {
          ["id"] => string(1) "1"
          ["k"] => string(1) "Q"
        }
}
["V"] => array(2) {
        [0] => array(11) {
          ["id"] => string(1) "3"
          ["k"] => string(1) "V"
        }
         [1] => array(11) {
          ["id"] => string(1) "4"
          ["k"] => string(1) "V"
        }
}
["H"] => array(1) {
         [0] => array(11) {
          ["id"] => string(1) "2"
          ["k"] => string(1) "H"
        }
}
</code>
Copier après la connexion
Copier après la connexion

<code><?php $arr = array(
    'Q'=>array(
        array(
            'id'=>1,
            'k'=>'Q'
        ),
        array(
            'id'=>2,
            'k'=>'H'
        ),
        array(
            'id'=>3,
            'k'=>'V'
        ),
        array(
            'id'=>4,
            'k'=>'V'
        ),                    
    ),    
    'V'=>array(
        array(
            'id'=>1,
            'k'=>'Q'
        ),
        array(
            'id'=>2,
            'k'=>'H'
        ),
        array(
            'id'=>3,
            'k'=>'V'
        ),
        array(
            'id'=>4,
            'k'=>'V'
        ),    
    ),
    'H'=>array(
        array(
            'id'=>1,
            'k'=>'Q'
        ),
        array(
            'id'=>2,
            'k'=>'H'
        ),
        array(
            'id'=>3,
            'k'=>'V'
        ),
        array(
            'id'=>4,
            'k'=>'V'
        ),    
    ),    
);

echo '<pre class="brush:php;toolbar:false">';
print_r($arr);

$new_arr = array();
foreach($arr as $key=>$val) {
    foreach($val as $k=>$v) {
        if($key == $v['k']) {
            $new_arr[$key][] = $v;
        }
    }
}
echo '<hr>';
print_r($new_arr);
Copier après la connexion

array_filter($arr,fun);
fun里面用数组的key去和k判断,不等于的unset掉

<code>
$keys = array_keys($arr);
$newArr = array();
$i = 0;
foreach ($arr as $key => $value) {
    $newArr[$key] = array_filter($value, function ($val) {
        GLOBAL $keys;
        GLOBAL $i;
        return $val["k"] == $keys[$i];
    }); 
    $i++;
}
</code>
Copier après la connexion
Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal