【问题标题】:PHP If switch for a multidimensional array with an UnknownPHP If 切换为具有未知的多维数组
【发布时间】:2012-10-16 01:37:32
【问题描述】:

只是好奇是否有办法在 If 开关中做到这一点

$account = array (
'{unkown value}' => 
    array (
      'accountID' => '4430290',
      'accountStatus' => '1',
      'parentAccountID' => '',
      'offerID' => '746',
      'billingModel' => '2.0',
    ),
);


if(array_pop($account)['billingModel'] == 'SomeValue') {
    // do stuff
}

我目前正在这样做,但认为可能有更好的方法

        $model = array_pop($accountInfo);
        if ($model['billingModel'] == 'someValue') return false;

【问题讨论】:

  • 较新版本的 php 允许您像这样链接表达式。
  • 相信是5.4引入的

标签: php multidimensional-array arrayiterator


【解决方案1】:

如果您只想在子数组元素具有某个值的情况下做某事,那么您必须实际查看 array_search()

http://php.net/manual/en/function.array-search.php

【讨论】:

    【解决方案2】:

    较新版本的 php 允许您像这样链接表达式。例子:

    php 5.3:http://codepad.viper-7.com/4zgSxW

    php 5.4:http://codepad.viper-7.com/oGtKqc

    两者使用相同的代码:

    <?php
    $array = array(range(1,5), range(6,10), range(11, 15));
    
    if(array_shift($array)[0] == 1){
        echo "hello";   
    }
    

    5.3 显示解析错误。 5.4 显示了预期的输出。

    【讨论】:

    • 不幸的是,这需要符合 5.3 标准,不过 +1 以获得整洁的 5.4 技巧。
    • @ehime 这就是我的意思,它在 5.3 中无法按照您的要求工作。仅在 >= 5.4 中。在 5.3 中,您必须按照您的建议进行操作,两行或循环。 foreach 或 while 与未知键配合良好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 2014-08-25
    • 2011-09-18
    • 2017-07-03
    • 1970-01-01
    相关资源
    最近更新 更多