我有点困惑。我可以获得所有的数组值,或者通过指定数字只获得一个,但我不知道如何获得数组中名为"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
)
我需要得到的是这个数组中"flag"(第三列)的值。我只是不知道如何获得这个价值。数组将始终按此顺序从mysql数据库中提取。我基本上是想做这样的事情:
if ($array[1].[flag]==1){
echo "Flag is true";
}else{
echo "Flag is false";
}
我只是不知道如何指定第三个元素。
感谢
如果你指的是子数组数组中的第三个元素,那么你可以这样做:
$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 中标志的平均值
$value = $items[2]['flag'];
或
$value = $thirdItem['flag']
我希望这能有所帮助!
您的代码有一个小语法错误$array[1].["flag"]
之间不能有.
,应该是
if ($array[1]["flag"]==1){
echo "Flag is true";
}else{
echo "Flag is false";
}
这应该有效。
这是您在问题中发布内容的一个小示例。为了这个例子,我随意更改了第二和第三阵列的旗帜。
$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";
}
}
}
上面的示例填充了以下内容:
- ID为1的项目已关闭其标志
- ID为2的项目具有不可接受的标志值
- ID为3的项目已打开其标志
您可以在此处查看:http://sandbox.onlinephpfunctions.com/code/8b04a7d9faae8c0a8d335b6cccdadcc7fbe61f61
$items
是保存数组的(外部)array
。Foreach对(外部)数组中包含的数组进行迭代。它们被分配给变量$item
。如果数组的"flag"值等于1,则会回显"flag is true",否则"flag is false"
foreach ($items as $item) {
echo $item['flag'] == 1 ? "Flag is true" : "Flag is false";
}