免費提供紙箱及拆裝、24H全省服務
合約保障、提供您平價又專業的搬家服務
搬家公司精做高難度防水抓漏/壁癌/油漆等工程
責任施工、合約保固!

首頁  •  tw 論壇 • 程式設計討論     • 

[php] 二維陣列的foreach的方式

房東:林先生
發表時間:2015-12-15
[檢舉]


要將陣列的資料讀出 ,在PHP程式語言裡 ,我們都知道可以使用 foreach ,當存取的陣列是 一維陣列 時, 並沒有什麼問題
若存取的陣列是為二維陣列或三維陣列時 ,若直接使用 foreach 則將會得到 array 的字串 ,並沒有辦法真的得到陣列的資料值

那麼該怎麼處理呢?





當遇到二維陣列以上(含二維)可以使用巢狀foreach來解決需求 ,請參考下面的範例 ...

foreach($LangItem as $v1)
{
foreach($v1 as $v2)
{
echo $v2.\"
\";
}
}

上面的範例 ,外層的foreach先讀出 $LangItem 陣列的 ID值 ,第二個 foreach 則是先使用取得的ID值去得到陣列的資料值

如果陣列是這樣寫 ...

$ABC[\'TITLE\'][1] = \"測試1”;
$ABC[\'VALUE\'][1] = \"測試1的資料值”;
$ABC[\'TITLE\'][2] = \"測試2”;
$ABC[\'VALUE\'][2] = \"測試2的資料值”;
$ABC[\'TITLE\'][3] = \"測試3”;
$ABC[\'TITLE\'][3] = \"測試3的資料值”;

則經由上面的巢狀foreach的處理結果 ,就會得到

測試1 測試1的資料值 測試2 測試2的資料值 測試3 測試3的資料值

問題來了 ,您或許\會問 ,那如果我只想要輸出陣列裡面的 VALUE 的資料時 ,該如何處理 ,方法很多種

最簡單的方式 ,請參考如下的修改 ...





$start=0;
foreach($LangItem as $v1)
{
foreach($v1 as $v2)
{
if($start==1)
echo $v2.\"
\";
}
$start++;
}

這樣修改之後 ,就會得到 ...

測試1的資料值

測試2的資料值

測試3的資料值




  • 贊助網站       

    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務
    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!

  • 1 樓住戶:誇誇
    發表時間:2015-12-15
    [檢舉]


    $arr[0][0] = "aaa";
    $arr[0][1] = "bbb";
    $arr[1][0] = "ccc";
    $arr[1][1] = "ddd";
    $arr[1][2] = "22ccc";
    $arr[1][3] = "33ddd";
    $arr[0][2] = "44ccc";
    $arr[0][3] = "55ddd";
    foreach($arr as $v1) {
    foreach ($v1 as $v2 => $value) {
    echo "$v1 $arr 888 $v2 $value
    ";
    }
    }
    ?>




    $arr[0] = "aaa";
    $arr[3] = "bbb";
    $arr[1] = "ccc";
    $arr[4] = "ddd";

    foreach ($arr as $key => $value) {
    echo "Array: $key, $value
    \n";
    }
    ?>

    2 樓住戶:jack
    發表時間:2015-12-15
    [檢舉]

    foreach的形式有兩種:

    foreach ( 陣列 as $value )

    foreach ( 陣列 as $key => $value )


    3 樓住戶:jack
    發表時間:2015-12-15
    [檢舉]

    $host = "localhost"; //主機名
    $user = "root"; //mysql用戶名
    $password = ""; //mysql密碼
    $database = "doc"; //mysql數據庫名
    $tables = "mclass"; //表名

    $conn=mysql_connect("$host","$user","$password") or die("數據庫打開出錯");
    mysql_select_db("$database");

    $query="select * from $tables";
    $result=mysql_query($query,$conn);
    $i=0;
    $j=0;
    while($row=mysql_fetch_row($result)){
    $array[$i][$j] = $row[0].$row[1];
    $array2[$i][$j] = $row[0];
    $j++; // echo $i.",".$j.$row[1]."
    ";
    if($j==3) {
    $i++;
    $j=0;
    } //else {$j++ ;}

    }
    $amax=count($array);//獲是數組內數據個數。

    $rows=2; //設置列數

    //開始顯示數據
    for ($x=0; $x<=$amax-1; $x++) {
    for ($y=0; $y<= $rows; $y++) {
    echo "".$array[$x][$y]."|" ;
    }
    echo "";
    }

    /*
    顯示結果為
    aaa|bbb|ccc
    ddd|eee|fff
    lll|mmm|nnn
    .....
    */

    ?>


    4 樓住戶:jack
    發表時間:2015-12-15
    [檢舉]

    http://web.nuu.edu.tw/~ychwang/962PHP/Ch013-Hwang.pdf

    http://php.net/manual/en/control-structures.foreach.php


    http://www.xlgps.com/article/137902.html

    https://www.percona.com/blog/2013/10/22/the-power-of-mysqls-group_concat/



     共 4 人回應  選擇頁數 【第1 頁】 

    姓名:
    佈告內容: