我在这里有点困惑。我能够通过指定数字来获取所有数组值,但是我无法弄清楚如何获取名为" flag"的元素的值。在数组中。我对数组一般是新手,并试图学习所有的术语,但我似乎无法实现我所需要的。这是数组:
Array
(
[0] ( Array
(
[id] => 1
[name] => Bag
[flag] => 0
)
[1] => Array
(
[id] => 2
[name] => Screen
[flag] => 0
)
[2] => Array
(
[id] => 3
[name] => HD
[flag] => 0
)
)
要获得该输出,我输入了:
print_r(array_values($items));
如果我打字(我明白这是从哪里来的):
print_r(array_values($items[1]));
然后我得到:
Array
(
[0] => 2
[1] => Screen
[2] => 1
)
我需要得到的是"标志"此数组中的(第3个)列。我只是不确定如何获得这个价值。该数组将始终从mysql数据库中按顺序提取。我基本上是想做这样的事情:
if ($array[1].[flag]==1){
echo "Flag is true";
}else{
echo "Flag is false";
}
我只是不确定如何指定第3个元素。
由于
答案 0 :(得分:0)
$items
是保存数组的(外部)array
。 Foreach迭代(外部)数组中包含的数组。它们被分配给变量$item
。
如果数组的'flag'值等于1,则回显“Flag为true”,否则“Flag为false”
foreach ($items as $item) {
echo $item['flag'] == 1 ? "Flag is true" : "Flag is false";
}
答案 1 :(得分:0)
您的代码有一点语法错误$array[1].["flag"]
之间不能有.
,应该是
if ($array[1]["flag"]==1){
echo "Flag is true";
}else{
echo "Flag is false";
}
这应该有用。
答案 2 :(得分:0)
如果你的意思是子阵列数组中的第三个元素,那么你可以这样做:
$thirdItem = $items[2]
如果来自第三个元素,则表示id = 3的子数组
function getItemByID( $items, $id ) {
for( $i = 0; $i < count( $items ); $i ++ ) {
if( $items[$i]['id'] == $id ) return $items[$i];
}
}
$item = getItemByID( $items, 3 );
如果来自第3个元素,则表示子流3中的标志值
$value = $items[2]['flag'];
或
$value = $thirdItem['flag']
我希望有所帮助!
答案 3 :(得分:0)
这是您在问题中发布的一个小例子。在这个例子中,我冒昧地改变了第2和第3阵列的标志。
$items = array
(
0 => array
(
'id' => 1,
'name' => 'Bag',
'flag' => 0
),
1 => array
(
'id' => 2,
'name' => 'Screen',
'flag' => -1
),
2 => array
(
'id' => 3,
'name' => 'HD',
'flag' => 1
)
);
foreach($items as $item) {
if(empty($item['flag'])) {
echo "Item having ID=".$item['id']." has it's flag turned off\n";
} else {
if($item['flag']==1) {
echo "Item having ID=".$item['id']." has it's flag turned on\n";
} else {
echo "Item having ID=".$item['id']." has unacceptable flag value \n";
}
}
}
以上示例填充以下内容:
您可以在此处查看:http://sandbox.onlinephpfunctions.com/code/8b04a7d9faae8c0a8d335b6cccdadcc7fbe61f61