如果存在其他参数,则在数组中查找参数

时间:2017-04-19 20:31:57

标签: php arrays multidimensional-array

我的任务是找到其他数组中存在其他参数的参数值。我不知道如何通过单词正确描述它,所以这里是伪代码:

if $_POST['from'] == X

$array'name' == X及其键'timezone'中查找并将此值保存为参数:

    $array = [
        [
            'name'     => 'A',
            'timezone' => 'AB',
        ],
        [
            'name'     => 'B',
            'timezone' => 'BC',
        ],
        [
            'name'     => 'C',
            'timezone' => 'AB',
        ],

如果$_POST['name'] == B'timezone' == BC

如果X,时区= B,我可以用10倍,但我认为这不是最好的方法。我现在正迈出这一步:

 foreach ($array as $key => $value) {
         foreach ($value as $key2 => $value2) {
            if ($value2 == $_POST['from']) {
                if ($key2 == 'timezone') {
                    echo $key;
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:2)

只要name值是唯一的:

echo array_column($array, 'timezone', 'name')[$_POST['from']];
  • name为键,timezone为值
  • 提取数组
  • 使用密钥$_POST['from']
  • 访问数组

当然你可以先查看它是否存在(假设你之前已经检查过isset($_POST['from'])):

$tz = array_column($array, 'timezone', 'name');

if(isset($tz[$_POST['from']])) {
    echo $tz[$_POST['from']];
}