假设我有一个数组数组:
$A=array();
$A['lemonade']=array('a','b','g');
$A['tree']=array('a','b','f');
$A['willpower']=array('a','b','g');
我如何随机抓取 $A 中的一个 key ,但只抓取 $A[n][2] 中包含 'g' 的 key ?
直接的方法是遍历它们,创建一个只包含包含 g 的数组的新数组,然后在该新数组中获取一个随机键。
$bro=array();
foreach($A as $k=>$hijito){
if($hijito[2]=='g'){
$bro[$k]=$hijito;
}
}
$theKeyIWant=array_rand($bro);
但我想知道是否有其他更奇特的方法来解决这个问题。
最佳答案
还有这种使用array_walk
( DEMO )的方法:
$A = array();
$A['lemonade'] = array('a','b','g');
$A['tree'] = array('a','b','f');
$A['willpower'] = array('a','b','g');
$bro = $A;
array_walk($A, function($item, $key) use (&$bro)
{
if($item[2] != 'g')
{
unset($bro[$key]);
}
});
var_dump($bro);
关于php - 选择一个数组的随机键,但强制其中一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46951155/