1

データベースのテーブルにデータを挿入しようとする次のコードを作成しました。ただし、文字を挿入するだけです。何が間違っているのかわかりません。

$media_items = array( 
array (
   "media_name" => "Facebook",
   "link_url" => "http://www.facebook.com/insightdezign",
   "icon" => "facebook.png",
   "size" => "48",
   "order" => "0"
),
array (
   "media_name" => "Twitter",
   "link_url" => "http://www.twitter.com/insightdezign",
   "icon" => "twitter.png",
   "size" => "48",
   "order" => "1"
)
);

foreach ($media_items as $media_item) {
    if (is_array($media_item)){
        foreach ($media_item as $item) {
            $rows_affected = $wpdb->insert( $ffui_items, array( 'media_name' => $item['media_name'], 'link_url' => $item['link_url'], 'icon' => $item['icon'], 'size' => $item['size'], 'order' => $item['order'] ) );
        }
    }
}
4

1 に答える 1

2

ネストされた foreach ループ内では、配列ではなく文字列をループします。型ジャグリングの結果、インデックスは に評価され0ます。PHP は$foo['bar']文字列の構文も受け入れるため、最初の文字だけを返します。

ネストされた foreach ループを単純に削除して、次のようにすることができます。

foreach ($media_items as $media_item) 
{
    if (is_array($media_item))
    {
        $rows_affected = $wpdb->insert( $ffui_items, 
            array( 
            'media_name' => $media_item['media_name'], 
            'link_url' => $media_item['link_url'], 
            'icon' => $media_item['icon'], 
            'size' => $media_item['size'], 
            'order' => $media_item['order'] 
            ) ;
    }
}
于 2013-10-20T16:24:19.187 に答える