Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用foreach循环转换数组_Php_Arrays_Loops - Fatal编程技术网

Php 使用foreach循环转换数组

Php 使用foreach循环转换数组,php,arrays,loops,Php,Arrays,Loops,你好,我有一个这样的数组 $myarray = Array( [0] => Array ( [0] => Type [1] => Brand ) [1] => Array ( [0] => Car [1] => Toyota ) ) 我想要这样的结果 $myarray = Array( [0] => Array ( [0] =&g

你好,我有一个这样的数组

$myarray = Array(
[0] => Array
    (
        [0] => Type
        [1] => Brand
    )

[1] => Array
    (
        [0] => Car
        [1] => Toyota
    )

)
我想要这样的结果

$myarray = Array(
[0] => Array
    (
        [0] => Type
        [1] => Brand
    )

[1] => Array
    (
        [0] => Car
        [1] => Toyota
    )

)
类型=汽车

品牌=丰田

所以第一个数组的平均值“0”将是echo,然后第二个数组的平均值“0”将显示

然后从第一个数组显示“1”值,然后从第二个数组显示“1”值

我也不知道会有多少数组,所以它需要是动态的


有什么帮助吗?

你可以试试这样的东西(现在我已经测试过了!):

foreach($myarray[0]作为$titleKey=>$title){
echo$title.“=”;
对于($i=1;$i用于此

$myarray = [
  ['Type', 'Brand'],
  ['Car', 'Toyota']
];

list($fields, $values) = $myarray;

$output = array_combine($fields, $values);

echo json_encode($output, JSON_PRETTY_PRINT);

// {
//     "Type": "Car",
//     "Brand": "Toyota"
// }
但正如你所说,它可能比丰田汽车更有价值,所以你必须这样做

$myarray = [
  ['Type', 'Brand'],
  ['Car', 'Toyota'],
  ['Horse', 'Seabiscuit']
];

function first ($xs) { return $xs[0]; }
function rest ($xs) { return array_slice($xs, 1); }

$output = array_map(function ($values) use ($myarray) {
  return array_combine(first($myarray), $values);
}, rest($myarray));

echo json_encode($output, JSON_PRETTY_PRINT);

// [
//     {
//         "Type": "Car",
//         "Brand": "Toyota"
//     },
//     {
//         "Type": "Horse",
//         "Brand": "Seabiscuit"
//     }
// ] 
注意,这个最终的解决方案假设第一个数组将包含字段名,其余数组将包含值

当然,当添加更多字段时,这种方法也会起作用。无需对代码进行任何更改

$myarray = [
  ['Type', 'Brand', 'Origin'],
  ['Car', 'Toyota', 'Japan'],
  ['Horse', 'Seabiscuit', 'Kentucky']
];

function first ($xs) { return $xs[0]; }
function rest ($xs) { return array_slice($xs, 1); }

$output = array_map(function ($values) use ($myarray) {
  return array_combine(first($myarray), $values);
}, rest($myarray));

echo json_encode($output, JSON_PRETTY_PRINT);

// [
//     {
//         "Type": "Car",
//         "Brand": "Toyota",
//         "Origin": "Japan"
//     },
//     {
//         "Type": "Horse",
//         "Brand": "Seabiscuit",
//         "Origin": "Kentucky"
//     }
// ] 

$myarray[0][2]
怎么样?试着理解你想要实现的目标。是汽车和品牌重复配对到下一个数组值吗?哦,是手动版本的。哦,亲爱的PHP。。。