下面的問題。從多級陣列獲取數據
這是我根據Pixeler的回答提出的解決方案。
<?php
$i = 0;
foreach ($array as $k1 => $v1) {
if (is_array($v1)) {
echo $k1."<br />";
foreach ($v1 as $k2 => $v2) {
echo "--".$k2."<br />----".$v2."<br />";
}
$i++;
}
echo "<br /<br />";
}
?>
<?php
$array = array("Apples" => array("Red" => "$2.95", "Green" => "$2.45"),
"Oranges" => array("Navel" => "$4.95"),
"Grapes" => array("Purple" => "$3.75", "Green" => "$3.25")
);
?>
是否有可能採取什麼樣的上方,並通過調用一批獲得每個值的文本? 我怎麼會做這樣的事情......
<?php
echo $array[0];
//Outputs "Apples"
echo $array[0][0];
//Outputs "Red"
echo $array[0][0][0];
//Outputs "$2.95"
echo $array[3][2][1];
//Outputs "$3.25" (Grapes > Green > Price)
?>
編輯:的想法是,我可以返回第一級(蘋果,橙子,葡萄),第二級(紅,綠,臍橙,紫色,綠色)和第三級(2.95美元,2.45美元,4.95美元,3.75美元,3.25美元)。
例如,我想要做這樣的事情:
<?php
count($array); //returns 3 (Apples, Oranges, Grapes)
//Do some for/foreach function that will produce the following:
//Apples
//->Red: $2.95
//->Green: $2.45
//Oranges
//->Navel: $4.95
//Grapes
//Purple: $3.75
//Green: $3.25
//I'm hoping to structure the code like this:
foreach($i = 0; $i =< count($array); $i++){
//echo title of array (Apples)
//echo each child key and it's value (Red: $2.95; Green: $2.45)
foreach($secondcounter = 0; $secondcounter =< count($array[$i]); $secondcounter++){
echo array_key($array[$i][$secondcounter]) . ": " .$array[$i][$secondcounter];
//Note: I don't actually know if array_key does the trick or not, it's meant to return "Red" in this case, while the non array_key()'d is meant to return the price of red apples, $2.95
}
?>
編輯:需要注意的是,我不能用言語來調用數據是很重要的。我必須使用數字,即[0]來調用數組中的第一項,因爲Apples可能會根據我從數據庫加載的數據行進行更改。換句話說,蘋果實際上可能是書籍,而紅色可能會成爲書本的名字=>價格。
我打算使用serialize/unserialize來存儲和檢索數據庫中的數據,雖然我不太熟悉這些函數,但我簡要介紹了它們,並且它們似乎相當容易使用。
我一直在研究幾個小時,但無法找到任何東西。 重要的是,我可以通過數字調用數據,而不是文本。所以$ array [「Apples」]是不可接受的。
我也看了一下json_decode和serialize/unserialize,我想我從簡單的一眼就可以得到它們的基本概念......但我認爲我的主要問題是理解如何調用上面提到的數據例。任何幫助都會非常棒。
因此,你想使用數組就像數組,但你也想知道什麼是數字的例子:'Grapes - > Purle'?如果你想在數據庫中保存這樣的數組,我還建議使用'serialize'和'unserialize'。 – Revenant
是的,我認爲是。如果有意義,我希望能夠返回每個單詞「蘋果」,「紅色」和「2.95美元」。但我希望能夠僅使用數字返回所有這些值。 –
我想你將不得不重新考慮你想要做什麼。從關聯數組和數組數組中獲取mysql數據並不容易。你會擁有他們兩個,你可以做任何你想做的事情。其他方法,你將不得不創建多個數組,比較它們,嘗試找到索引號等等..你最終會寫很多行的代碼。 – Revenant