[英]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.