У меня есть следующая строка: "1,3,4,7", которую мне нужно взорвать в массив в следующем формате:
$data = array(
array(
'id' => 1
),
array(
'id' => 3
),
array(
'id' => 4
),
array(
'id' => 7
),
);
Кажется, это вызывает у меня гораздо боль, чем я думал. Может ли кто-нибудь любезно помочь?
Вы можете использовать комбинацию array_map()
и explode()
: Сначала вы создаете массив со значениями и чем сопоставить все эти значения в нужный вам формат в новом массиве.
Что-то вроде:
$vals = "1,3,4,7";
$map = array_map(function($val) {
return array('id' => $val);
}, explode(',', $vals));
var_dump($map);
<?php
$myArray=explode(",","1,3,5,7");
$result=array();
foreach($myArray as $key=>$arr)
{
$result[$key]['id']=$arr;
}
print_r($result);
?>
Во-первых, вы взорвите строку, чтобы получить значения в массиве. Затем вы перебираете массив и устанавливаете данные как массив в другой массив
$string = "1,2,3,4";
$array = explode(",", $string);
$data = array();
foreach($array as $arr){
$data[] = array('id' => $arr);
}