PHP взорвать строку в несколько массивов

1

У меня есть следующая строка: "1,3,4,7", которую мне нужно взорвать в массив в следующем формате:

$data = array(
   array(
      'id' => 1
   ),
   array(
      'id' => 3
   ),
   array(
      'id' => 4
   ),
   array(
      'id' => 7
   ),
);

Кажется, это вызывает у меня гораздо боль, чем я думал. Может ли кто-нибудь любезно помочь?

  • 3
    Вы пытались что-то достичь своей цели?
  • 0
    Я думаю, что взрыв и петли некоторых видов может помочь.
Теги:
arrays
explode

3 ответа

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

Вы можете использовать комбинацию array_map() и explode(): Сначала вы создаете массив со значениями и чем сопоставить все эти значения в нужный вам формат в новом массиве.

Что-то вроде:

$vals = "1,3,4,7";

$map = array_map(function($val) {
  return array('id' => $val);
}, explode(',', $vals));

var_dump($map);

Пример.

  • 2
    Ну, я просто ждал, пока OP покажет какую-то работу и усилия, чтобы мы не просто выполняли его работу или не трансформировались в службу написания кода. (С моим ответом imgur.com/0ZKYVhU ). Но кажется, что все не беспокоятся о таких вещах. (По крайней мере, вы дали хорошее объяснение с некоторыми хорошими ссылками)
  • 0
    @ Rizier123 Вы совершенно правы. Я просто тестировал с анонимными функциями и версиями php, и это соответствовало моему тесту. К сожалению :-)
Показать ещё 4 комментария
0
<?php
$myArray=explode(",","1,3,5,7");

$result=array();
foreach($myArray as $key=>$arr)
{
    $result[$key]['id']=$arr;

}

print_r($result);
?>
  • 0
    запустите это и проверьте, пожалуйста.
  • 0
    извини, мой плохой, я пропустил "," взорваться
0

Во-первых, вы взорвите строку, чтобы получить значения в массиве. Затем вы перебираете массив и устанавливаете данные как массив в другой массив

$string = "1,2,3,4";
$array = explode(",", $string);
$data = array();
foreach($array as $arr){
    $data[] = array('id' => $arr);
}

Ещё вопросы

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