【问题标题】:PHP: get current array key?PHP:获取当前数组键?
【发布时间】:2011-01-04 12:20:23
【问题描述】:
$array = ( 
    array('1231415'=>array('foo'=>'bar', 'test'=> 1)),
    array('32434'=>array('foo'=>'bar', 'test'=> '0')),
    array('123244'=>array('foo'=>'bar', 'test'=> 0)),
    array('193928'=>array('foo'=>'bar', 'test'=> 1))
);

我有一个包含(许多)随机键的数组,即 ID 号。我需要在 if 'test' = 1 内测试每个数组,所以我做了一个foreach 循环。

foreach ($array as $sub) {
  if ($sub['test'] == '1' ) {
     echo 'User: ' . $sub . ' has test = 1';
  }
}

这可行,但它返回 'User: Array has test = 1'

我到底如何获得其中包含 test=1 的 ID 号(该随机数)?

我尝试过$array as $sub=>$value,但由于某种原因,它只会使foreach 不起作用。谢谢!

【问题讨论】:

  • 这不是你在这里问的同一个问题:stackoverflow.com/questions/2054661/… 吗?
  • 我尝试了建议的答案#1,但它只是返回:>[0] => 用户:数组有 in_env = 1 >[1] => 用户:数组有 in_env = 1
  • 所以你不要使用那个答案......等待其他人提出新的答案。不需要其他问题。

标签: php search arrays recursion find


【解决方案1】:

改用foreach 语法:

foreach ($array as $key => $sub) {
  if ($sub['test'] == '1' ) {
    echo 'User: ' . $key . ' has test = 1';
  }
}

这假设数据的形式是:

$array = array(
  '1234' => array('test' => 1),
  '5678' => array('test' => 2)
);

如果您需要将数据保持原样,则需要使用类似的东西:

foreach ($array as $item) {
  list($key, $info) = $item;
  if ($info['test'] == 1) {
    echo 'User: ' . $key . ' has test = 1';
  }
}

【讨论】:

  • 考虑到他这里的数组结构,这实际上并不正确。
  • 你是对的 - 我已经使用替代数据格式和与当前数据格式匹配的解决方案对其进行了更新。
  • @pix0r:你的第三个代码 sn-p 对他不起作用,因为他的数组定义有语法错误。
  • 哈,好吧..他需要在第一行第一个开放括号之前添加一个array
【解决方案2】:

您的代码有 2 个问题。

1) 你的数组声明有点混乱。试试这个:

$array = array( 
   '1231415'=>array('foo'=>'bar', 'test'=> 1),
   '32434'=>array('foo'=>'bar', 'test'=> 0),
   '123244'=>array('foo'=>'bar', 'test'=> 0),
   '193928'=>array('foo'=>'bar', 'test'=> 1)
);

2) 在您的foreach 中,您丢失了 id 密钥。试试这个:

foreach ($array as $id => $sub) {
    if ($sub['test'] == 1) {
        echo "User: " . $id . " has test = 1\n";
    }
}

在我的测试中,上面的输出:

User: 1231415 has test = 1
User: 193928 has test = 1

【讨论】:

    猜你喜欢
    • 2011-06-15
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 2020-07-20
    • 2015-11-16
    • 2014-02-06
    • 2015-12-07
    • 1970-01-01
    相关资源
    最近更新 更多