簡體   English   中英

PHP:獲取當前數組鍵?

[英]PHP: get current array key?

$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號。 如果'test'= 1,我需要測試每個數組,所以我做了一個foreach循環。

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

這有效,但它返回'User:Array has test = 1'

我怎么得到哪個ID號,(那個隨機數)有test = 1?

我嘗試將$array as $sub=>$value ,但由於某種原因它只是讓foreach不起作用。 謝謝!

請改用此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';
  }
}

您的代碼有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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM