php - 选择一个数组的随机键,但强制其中一个值

标签 php arrays

假设我有一个数组数组:

$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/

相关文章:

PHP:UPLOAD_ERR_INI_SIZE 的意义何在?

php - Laravel API 的创建和编辑方法应该返回什么?

php - 修复 undefined index

javascript - 从数组派生类型 Typescript

javascript - 在一个键 JSON 中存储多个数组值

php - 如何运行 longlife 后台进程,linux 服务器

php base64 图像错误 414(请求 URI 太大)

javascript - 返回数组中的最大数字

java - 数组类型相同,链表类型不同

c++ - 如果它是成员函数,如何声明字符串数组的大小