0

この配列は$this->load->var($data)、いくつかのグローバル変数とともに渡されました。インスタンス化された連想配列から以下の配列を抽出する必要がありvarます。現在、その配列は次のようになっています。 以下の多次元配列に注目してください。

 Dump => array(1) {
  [9] => array(1) {
    [0] => object(stdClass)#21 (8) {
      ["day"] => string(2) "09"
      ["eventContent"] => string(14) "slug ok"
      ["eventTitle"] => string(4) "Slug"
      ["id"] => string(1) "4"
      ["user"] => string(3) "CZL"
      ["user_id"] => string(1) "1"
      ["slug"] => string(4) "Slug"
      ["eventDate"] => string(10) "2013-07-09"
    }
  }
}

次のように変換する必要があります。以下の 1 次元配列に注目してください。

Dump => array(1) {
  [0] => object(stdClass)#21 (7) {
      ["day"] => string(2) "09"
      ["eventContent"] => string(14) "slug ok"
      ["eventTitle"] => string(4) "Slug"
      ["id"] => string(1) "4"
      ["user"] => string(3) "CZL"
      ["user_id"] => string(1) "1"
      ["slug"] => string(4) "Slug"
      ["eventDate"] => string(10) "2013-07-09"
  }
}

マルチをシングルに変換する以外に、多次元配列から特異配列を呼び出す方法はありますか?

多次元配列で foreach を使用していますが、正しく出力されません。これが私が使用しているものです。calendars私がそれに渡している上の配列です。

foreach ($calendars as $calendar) {
        $url = calendar_link($calendar);
        $string .= '<li>';
        $string .= '<h3>' . anchor($url, e($calendar->eventTitle)) .  ' ›&lt;/h3>';
        $string .= '<p class="pubdate">' . e($calendar->eventDate) . '</p>';
        $string .= '</li>';
    }

function calendar_link($calendar){
return 'calendar/event/' . intval($calendar->id) . '/' . e($calendar->slug);
}
4

1 に答える 1

0

多次元配列が実際にダンプとまったく同じように見える場合は、次のようなことができるはずです。

$calendar_single = $calendars[9]; // I dont know why you get 9 as array key here?

次に、1 つのオブジェクトを持つ配列が必要です。

オブジェクトに直接到達したい場合は、これを試してください:

$calendar_object = $calendars[9][0];

そして、 foreach が機能するはずです:

foreach ($calendar_object as $calendar) { ...

最も良い解決策ではなく、配列キー(9)が変更されると機能しません..

配列キーのインデックスに関係なく機能する、より一般的なソリューションを試すこともできます。

foreach($マルチを$シングルとして){
    foreach($objectとして$single){
        foreach($object as $calendar){
            // コードはこちら
            calendar_link($calendar); // その他…
        }       
    }
}
于 2013-07-07T20:36:33.960 に答える