У меня есть только один массив внутри индекса, поэтому я хочу переместить индекс к предыдущему индексу? Пожалуйста, смотрите ссылку ниже: - PullRequest
0 голосов
/ 07 мая 2018
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 голосов
/ 08 мая 2018

Вы можете использовать, например, двойной цикл 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
        )

)

Демо

0 голосов
/ 07 мая 2018

Вы можете сделать это по циклу.

foreach ($data as $key => $value) {
    foreach ($value as $key1 => $value2) {
        $data[$key1] = $value2;
    }
}
0 голосов
/ 07 мая 2018

Попробуйте это,

foreach($data as $key1=>$val1){
    foreach($val1 as $key2=>$val2){
        $new_array[$key2] = $val2;
        }
    }
0 голосов
/ 07 мая 2018

Вы можете достичь этого, используя array_collapse.

Ссылка

РЕДАКТИРОВАТЬ :

пока тег изменился.

Вот основное решение php на основе Laravel array_collapse:

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

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

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

    return $results;
}
0 голосов
/ 07 мая 2018

Вы должны использовать array_flatten(); для достижения вашей цели, как это,

$flattened = array_flatten(Your_Data_Array);

Пожалуйста, попробуйте и дайте мне знать.

UPDATE

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

Для получения дополнительной информации вы можете посетить this для функций PHP.

Дайте мне знать, если у вас возникнут вопросы.

0 голосов
/ 07 мая 2018
$output = array_map(function($item) { return $item[0]; }, $myArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...