преобразование массива php вместо числа, поставленного именем

1

Как я могу изменить массив, как показано ниже: --->

$data = Array
(
    [1] => Samsung GT-i9300 Galaxy S III 16GB
    [4] => Samsung GT-i9100 Galaxy S II
)

к этому --->

    $data = Array
        (
    [0] => Array
        (
            [name] => Samsung GT-N7100 Galaxy Note II 16GB
        )

    [1] => Array
        (
            [name] => Samsung GT-i9100 Galaxy S II
        )
  • 3
    Ты не можешь Ключи не уникальны.
  • 0
    @JohnConde вы можете предложить любое решение
Показать ещё 4 комментария
Теги:
arrays

4 ответа

1
Лучший ответ

Если вам это нужно, вот оно:

$data = array
(
   'Samsung GT-i9300 Galaxy S III 16GB',
   'Samsung GT-i9100 Galaxy S II'
);

$new_arr=array();


foreach ($data as $val) {

    $new_arr[]['name'] = $val;
}

print_r($new_arr);
1

Единственный способ, который я могу предложить, - это преобразовать массив:

$data = array
(
    '1' => 'Samsung GT-i9300 Galaxy S III 16GB',
    '4' => 'Samsung GT-i9100 Galaxy S II'
);
$newData = array();

foreach ($data as $key=>$val ) {
    $newData[$key]['name'] =$val;
}

Итак, теперь вы проходите через $newData и name catch в качестве поля:

foreach ($newData as $obj ) {
     echo $obj['name'];
}
  • 0
    ты офигенный со своим ответом, бухни :)
1

Вы также можете использовать array_push, то есть:

$array =  array("Samsung GT-i9300 Galaxy S III 16GB", "Samsung GT-i9100 Galaxy S II");
$newarray = array();
foreach($array  as $model){
array_push($newarray, array('name' => $model) );
}
print_r($newarray);

ВЫВОД:

Array
(
    [0] => Array
        (
            [name] => Samsung GT-i9300 Galaxy S III 16GB
        )

    [1] => Array
        (
            [name] => Samsung GT-i9100 Galaxy S II
        )

)

DEMO:

http://ideone.com/QTqAjr

1
$data = array(
    1 => 'Samsung GT-i9300 Galaxy S III 16GB',
    4 => 'Samsung GT-i9100 Galaxy S II'
);

$newData = array_map(function ($e) {
    return array('name' => $e);
}, array_values($data));

var_dump($newData);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню