safenoob
@safenoob

Как сгенерировать ассоциативный массив на PHP?

Такой код
$m1 = array('one', 'two', 'three');
$m2 = array();

for ($j = 0; $j < count($m1); $j++) {
    $ready = array("$m1[$j]"=>0);
    $m2[] = $ready;
}

Генерирует массив вида:
array(3) {
  [0]=>
  array(1) {
    ["one"]=>
    int(0)
  }
  [1]=>
  array(1) {
    ["two"]=>
    int(0)
  }
  [2]=>
  array(1) {
    ["three"]=>
    int(0)
  }
}


А хотелось бы такого:
array(3) {
  ["one"]=>
  int(0)
  ["two"]=>
  int(0)
  ["three"]=>
  int(0)
}
  • Вопрос задан
  • 264 просмотра
Решения вопроса 1
DevMan
@DevMan
$m1 = ['one', 'two', 'three'];
$m2 = [];

foreach ($m1 as $v) {
	$m2[$v] = 0;
}
print_r($m2);

Array
(
    [one] => 0
    [two] => 0
    [three] => 0
)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
toxa82
@toxa82
$m1 = array('one', 'two', 'three');
$m2 = array_combine($m1, array_fill(0, count($m1), 0));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы