如何在php中获取此数组的第三个元素的值


How do I get the value of the 3rd element of this array in php?

我有点困惑。我可以获得所有的数组值,或者通过指定数字只获得一个,但我不知道如何获得数组中名为"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";
}