簡體   English   中英

無法將字符串偏移量用作數組

[英]Cannot use string offset as an array

嗨,我有一個看起來像這樣的數組

Array
(
        [0] => Array
                (
                        [Marque] => AUDI
                        [Famille] => A4 Avant N1
                )
        [1] => Array
                (
                        [Marque] => AUDI
                        [Famille] => A3
                )
        [2] => Array
                (
                        [Marque] => AUDI
                        [Famille] => A5
                )
        [3] => Array
                (
                        [Marque] => AUDI
                        [Famille] => A4
                )
)

我需要一個看起來像這樣的數組:

引用

Array
(
    [AUDI] => Array
    (
        [0] => A4 Avant N1
        [1] => A3
        [2] => A5
        [3] => A4
    )

)

如此票價我就知道了:

if (isset($_GET['debug'])){ $stri=array(); $i=0; foreach($csv_array as $car){
    if ( !in_array("$car[Marque]", $stri) ) {
    $stri[] = "$car[Marque]";
    }
    if ( !in_array("$car[Famille]", $stri) ) {
    $stri[$i][$car[Marque]][] = "$car[Famille]";
    }     $i++; }

echo "<pre>"; print_r($stri); echo "</pre>";

但這給了我

致命錯誤:無法將字符串偏移量用作數組

嘗試在數組鍵周圍加上引號:

if (isset($_GET['debug'])){ $stri=array(); $i=0; foreach($csv_array as $car){
    if ( !in_array("$car['Marque']", $stri) ) {
    $stri[] = "$car['Marque']";
    }
    if ( !in_array("$car['Famille']", $stri) ) {
    $stri[$i][$car['Marque']][] = "$car['Famille']";
    }     $i++; }

echo "<pre>"; print_r($stri); echo "</pre>";

您必須使用單引號正確地提取值:

$car[Famille] => $car['Famille']

[編輯]現在我明白了...

$stri = Array();

foreach($csv_array as $car)
{
    if (!array_key_exists("$car['Marque']", $stri))
    {
        $stri["$car['Marque']"] = Array();
        $stri["$car['Marque']"][] = "$car['Famille']";
    else
        $stri["$car['Marque']"][] = "$car['Famille']";
}

var_dump($stri);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM