2016-04-18 64 views
0

我在這裏有點困惑。我可以通過指定數字來獲取所有數組值,但我無法弄清楚如何獲取數組中名爲「flag」的元素的值。我是一般的新陣列,並試圖學習所有的術語,但我似乎無法完成我所需要的。這裏是數組:如何在php中獲得這個數組的第三個元素的值?

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"; 
} 

我只是不知道如何指定第三個元素。

由於

+1

沒有圓點,括號和任何字符串鍵必須加引號:'if($ array [1] ['flag'] == 1){' – larsAnders

+3

使用'$ array [1] [flag]'not'$ array [1]。[flag]'注意我的第一個例子中沒有這個時間段。另外,請打開錯誤報告,因爲它會向你大吼這種愚蠢。 – MonkeyZeus

+0

調用'array_values()'已經遮蔽了數組的實際鍵。顯示內容而不調用它。 –

回答

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'] 

我希望有幫助!

+0

非常棒!非常感謝你! – sensualstares

0

$items是(外)array保持所述陣列。 Foreach遍歷(外部)數組中包含的數組。它們被分配給變量$item。 如果數組的「標誌」的值等於1,則「標記爲true」相呼應,否則「標誌是假的」

foreach ($items as $item) { 
    echo $item['flag'] == 1 ? "Flag is true" : "Flag is false"; 
} 
+0

儘管這段代碼可能會回答這個問題,但最好包含一些上下文,解釋它的工作原理以及何時使用它。從長遠來看,僅有代碼的答案是沒有用的。 – Bono

+0

請包括一些描述 –

+0

嗯,我更新了我的答案和一些描述。 – Reto

0

你的代碼有一點語法錯誤$array[1].["flag"]不能有.之間,應該是

if ($array[1]["flag"]==1){ 
echo "Flag is true"; 
}else{ 
echo "Flag is false"; 
} 

這個,應該有效。

0

這是您在問題中發佈內容的一個小例子。在這個例子中,我冒昧地改變了第二和第三陣列的標誌。

$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

相關問題