Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz CSorBA #17344 üzenetére

    Ha beépített megoldást is találnál rá, annak is végig kellene szaladnia a tömbön (igaz, a beépített megoldás minimálisan gyorsabb lehet, mint a saját kódod), szóval nem fogod tudni megspórolni, de nem túl bonyolult:

    $testArray = array(
    0 => array(
    "id"=> "214",
    "valami"=> "asd"
    ),
    1 => array(
    "id"=> "123",
    "valami"=> "asd"
    ),
    2 => array(
    "id"=> "982",
    "valami"=> "asd"
    ),
    );

    $newArray = array();
    foreach($testArray as $currentItem){
    $newArray[$currentItem['id']] = $currentItem;
    }

    Eredménye:

    array (
    214 =>
    array (
    'id' => '214',
    'valami' => 'asd',
    ),
    123 =>
    array (
    'id' => '123',
    'valami' => 'asd',
    ),
    982 =>
    array (
    'id' => '982',
    'valami' => 'asd',
    ),
    )

    Lehetne még array_walk segítségével is, de itt pár mérés alapján sokkal lassabb tud lenni, mint a foreach, úgyhogy inkább csak érdekességként mutatom:

    $newArray = array();
    array_walk($testArray, function($item, $key){
    global $newArray;
    $newArray[$item['id']] = $item;
    });

    [ Szerkesztve ]

    Sk8erPeter

Új hozzászólás Aktív témák