Изучаю PHP, есть задание: реализовать функцию function($num){}
, где $num
– массив положительных чисел, количество элементов кратно 3
.
Результат ее выполнение: двумерный массив (массив состоящий из ассоциативных массива с ключами a
, b
, c
).
Пример для входных массива:
[1, 2, 3, 4, 5, 6]
результат
[['a' => 1, 'b' => 2, 'с' => 3],
['a' => 4, 'b' => 5, 'c' => 6]]
<?php
$num = 5;
function createTrapez($num)
$keys = array('a','b','c');
$arr = array();
$arr = range(0, $num);
$ct = count($arr);
if(($ct%3==0)&&($a>=0))
{
$values = array_chunk($arr, 3);
foreach ($values as $item =>$array) {
${"array{$item}"} = $array;
$c = array_combine($keys, $array);
print_r($c);
}
else
echo "Количество элемнтов не кратно 3 или числа отрицательно";
}
?>
Происходит замена ключей только в последнем массиве, как сделать, чтобы ключи поменялись во всех массивах?
просто бейте на 3 и соединяйте с ключами.
$data = [1, 2, 3, 4, 5, 6] ;
$result = array_map(function($v){
return array_combine(['a','b','c'], $v);
}, array_chunk($data, 3));
$array = [1, 2, 3, 4, 5, 6];
var_dump(fun($array));
function fun($array){
if(count($array) % 3 !== 0){
return false;
}
$arrays = array_chunk($array, 3);
$array_keys = ["a", "b", "c"];
$new_array = [];
foreach($arrays as $array){
$new_array[] = array_combine($array_keys, $array);
}
return $new_array;
}
Результат:
array(2) {
[0]=>
array(3) {
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
}
[1]=>
array(3) {
["a"]=>
int(4)
["b"]=>
int(5)
["c"]=>
int(6)
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Имеется orthanc-server и проект на C++ с использованием Grassroots DICOMНа сервере имеется запись instance c Text Value Attribute(0040,A160)