Вставка значения в многомерный массив в переполнение стека

В настоящее время я имею дело с phplot, в котором я хочу добавить линейный график с несколькими линиями.

Итак, вот проблема, скажем, у меня есть массив данных:

$graph->SetDataType('data-data');
$data = array(
array("",0,37.0023239,34.4618,31.92128),
array("",1,39.6116079,37.2759,34.94019),
array("",2,41.4738623,39.1285,36.78314)
);

А теперь у меня есть другой массив, назовем его a, где ключ находится там, где я хочу поместить его в массив данных:

$a = array (
"0"=>'38';
"2"=>'40';
)

Я хотел, чтобы данные вставляли их в соответствующее значение x. Итак, в конце я хочу что-то вроде:

$data = array(
array("",0,37.0023239,34.4618,31.92128,38),
array("",1,39.6116079,37.2759,34.94019,''),
array("",2,41.4738623,39.1285,36.78314,40)
);

Можно ли сделать это? Любое предложение будет очень оценено.

1

Решение

Почти так же, как и в предыдущем ответе, но переворачивает поиск наизнанку: итерирует массив данных и проверяет, является ли каждая пара ключ-значение $a содержит соответствующий элемент; да: добавить его, нет: добавить пустую строку.

<?php
$data = array(
array("",0,37.0023239,34.4618,31.92128),
array("",1,39.6116079,37.2759,34.94019),
array("",2,41.4738623,39.1285,36.78314)
);

$a = array (
"0"=>'38',
"2"=>'40',
);

foreach($data as $k=>&$v) {
$v[] = isset($a[$k]) ?  $a[$k] : '';
}

var_export($data);

печать

array (
0 =>
array (
0 => '',
1 => 0,
2 => 37.0023239,
3 => 34.461799999999997,
4 => 31.921279999999999,
5 => '38',
),
1 =>
array (
0 => '',
1 => 1,
2 => 39.611607900000003,
3 => 37.2759,
4 => 34.940190000000001,
5 => '',
),
2 =>
array (
0 => '',
1 => 2,
2 => 41.4738623,
3 => 39.128500000000003,
4 => 36.783140000000003,
5 => '40',
),
)
2

Другие решения

Должно быть довольно просто:

foreach($data as $key => &$val) {
if(isset($a[$key])) {
$val[] = $a[$key];
} else {
$val[] = '';
}
}
2

По вопросам рекламы [email protected]