【问题标题】:PHP: high depth array, how do return current key name?PHP:高深度数组,如何返回当前键名?
【发布时间】:2010-01-13 05:32:39
【问题描述】:

我有一个来自 json_decode 结果的巨大数组(assoc 设置为 true),并且有以下代码来检查(其中一个数组,一个随机序列)是否具有键 'set_true'

$out = "";
foreach ($array as $sub) {
  //$out[] = $sub['set_true'];
  if (in_array($sub['set_true'], $sub) && $sub['set_true'] == '1' ) {
     $out[] = 'User: ' . $sub . ' has set_true = 1';
  }
}

该代码列出了该数组键设置为 1 的所有用户,但 $sub 返回 'array' 而不是我当前使用的键! (随机序列)

如何退货?

【问题讨论】:

    标签: php arrays key


    【解决方案1】:

    如果您正在循环使用foreach 的数组,并且想知道您当前在循环中的键,您可以使用以下语法:

    foreach ($array as $key => $value) {
        // $key contains the name of the current key
        // and $value the current value
    }
    

    【讨论】:

      【解决方案2】:

      你的 in_array 调用是怎么回事?我不认为这是正确的。为什么在$sub 中寻找$sub

      【讨论】:

        【解决方案3】:

        我想你的意思是:

        $out = "";
        foreach ($array as $key => $sub) {
          if (array_key_exists('set_true', $sub) && $sub['set_true'] == '1' ) {
             $out[] = 'User: ' . $key . ' has set_true = 1';
          }
        }
        

        【讨论】:

          猜你喜欢
          • 2016-01-19
          • 1970-01-01
          • 1970-01-01
          • 2011-01-04
          • 1970-01-01
          • 2014-11-21
          • 2017-12-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多