我在索引中只有一个数组,所以我想将索引移动到上一个索引?请参阅下面的参考:

时间:2018-05-07 12:37:27

标签: php arrays core

Array
(
    [data] => Array
        (
            [0] => Array
                (
                    ['degree_level'] => Bachelor's
                )

            [1] => Array
                (
                    ['field_of_study'] => Science
                )

            [2] => Array
                (
                    ['grade_point'] => 3
                )

            [3] => Array
                (
                    ['criteria'] => desired
                )

        )

)

我想要的是什么:

Array
(
    [data] => Array
        (
            ['degree_level'] => Bachelor's

            ['field_of_study'] => Science

            ['grade_point'] => 3

            ['criteria'] => desired

        )

)

6 个答案:

答案 0 :(得分:1)

您应该使用array_flatten();来实现这样的目标,

$flattened = array_flatten(Your_Data_Array);

请试一试,让我知道。

<强>更新

$flattened = array_map(function($item) {
                return $item[0];
             }, Your_Data_Array);

有关更多信息,您可以访问this获取PHP函数。

如有任何疑问,请与我联系。

答案 1 :(得分:0)

$output = array_map(function($item) { return $item[0]; }, $myArray);

答案 2 :(得分:0)

您可以使用array_collapse实现此目的。

Link

编辑

标签已更改。

这是基于Laravel array_collapse的核心php解决方案:

function collapse($array)
{
    $results = [];

    foreach ($array as $values) {
       if (! is_array($values)) {
            continue;
        }

        $results = array_merge($results, $values);
    }

    return $results;
}

答案 3 :(得分:0)

试试这个,

foreach($data as $key1=>$val1){
    foreach($val1 as $key2=>$val2){
        $new_array[$key2] = $val2;
        }
    }

答案 4 :(得分:0)

你可以通过循环来完成。

foreach ($data as $key => $value) {
    foreach ($value as $key1 => $value2) {
        $data[$key1] = $value2;
    }
}

答案 5 :(得分:0)

您可以使用双foreach循环来使用键和第二个循环中的值,并将它们添加到$arrays["data"]数组中。

然后您可以使用unset删除嵌套数组。

$arrays = [
    "data" => [
        ["degree_level" => " Bachelor's"],
        ["field_of_study" => "Science"],
        ["grade_point" => 3],
        ["criteria" => "desired"]
    ]
];

foreach($arrays["data"] as $dataKey => $data) {
    foreach ($data as $key => $value) {
        $arrays["data"][$key] = $value;
    }
    unset($arrays["data"][$dataKey]);
}
print_r($arrays);

那会给你:

Array
(
    [data] => Array
        (
            [degree_level] =>  Bachelor's
            [field_of_study] => Science
            [grade_point] => 3
            [criteria] => desired
        )

)

Demo