0

array_spliceを試してみましたが、次のような出力が得られました($ matchから)

Array
(
    [Keep me Updated] => Array
        (
            [winner] => winnerl.jpg
            [0] => value0.jpg
        )

    [0] => valuel.jpg //this should really be inside [Leep me Updated] array
    [1] => value2.jpg //this should really be inside [Leep me Updated] array
    [2] => value3.jpg //this should really be inside [Leep me Updated] array
}

from(このforeachは値を$ matchに入れます)

foreach($data as $d)
{
    if (isset($match[$d['data']['name']])) {
        $match_loser = array($d['loser']['lrg_img']);

        array_splice($match,1,0,$match_loser);
    }else{
        $match[$d['data']['name']] = array("winner"=>$d['winner']['lrg_img'],
                                            $d['loser']['lrg_img']);        
    }
}

私が取得しようとしているのは、 $match配列[0],[1],[2]に取り込むことです。[Keep me Updated]

Array
(
    [Keep me Updated] => Array
        (
            [winner] => winnerl.jpg
            [0] => value0.jpg
            [1] => value1.jpg   // old one: [0] => valuel.jpg
            [2] => value2.jpg   // old one: [1] => value2.jpg
            [3] => value3.jpg   // old one: [2] => value3.jpg
        )
}

これは$dataがどのように見えるかです

    $data[] = array(
    "data"=>array
    (
        "name"=>$name,
    ),
    "winner"=>array
    (
        "lrg_img"=>$img_url_winner
    ),      
    "loser"=>array
    (
        "lrg_img"=>$img_url_loser
    )

$ dataには配列値があり、$matchはデータを並べ替えようとしている場所です。したがって、私の値が一致する場合、それは統合されます。

ありがとう!

4

1 に答える 1

1

内部配列を引数として使用しますarray_splice

foreach($data as $d)
{
    if (isset($match[$d['data']['name']])) {
        $match_loser = array($d['loser']['lrg_img']);

        array_splice($match[$d['data']['name']],1,0,$match_loser);
    }else{
        $match[$d['data']['name']] = array("winner"=>$d['winner']['lrg_img'],
                                            $d['loser']['lrg_img']);        
    }
}
于 2012-12-04T07:28:21.103 に答える