php - 将键添加到数组 PHP 中尚无键的值

标签 php arrays sorting

给定休闲数组$array:

Array
 (
  [1] => Array
    (
        [0] => 267
        [location_id_keep] => 261
    )
  [2] => Array
    (
        [0] => 266
        [location_id_keep] => 262
    )
  [3] => Array
    (
        [0] => 2669
        [1] => 2670
        [location_id_keep] => 2668
    )
  [4] => Array
    (
        [0] => 266
        [1] => 2670
        [location_id_keep] => 2668
    )
  )

我想向没有 [location_id_keep] 键的每个数组值添加休闲键:[location_id_delete] 以便我将获得此输出:

Array

(

[1] => Array
    (
        [location_id_delete] => 267
        [location_id_keep] => 261
    )

[2] => Array
    (
        [location_id_delete] => 266
        [location_id_keep] => 262
    )
[3] => Array
    (
        [location_id_delete] => [2669, 2670]
        [location_id_keep] => 2668
    )

[4] => Array
    (
        [location_id_delete] => [266, 2670]
        [location_id_keep] => 2668
    )
)

是否有任何方法可以在分配给没有键的现有值的数组中添加键?

最佳答案

这应该可行,但我建议您应该重建数据结构。 Demo

foreach($arrays as &$array){
    if($array["location_id_keep"]){
        $temp_array["location_id_keep"] = $array["location_id_keep"];
        unset($array["location_id_keep"]);
    }
    $count = count($array);
    if($count == 1) {
        $temp_array["location_id_delete"] = current($array);
    }elseif($count > 1){
        $temp_array["location_id_delete"] = array_values($array);
    }
    $array = $temp_array;
}

关于php - 将键添加到数组 PHP 中尚无键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57802197/

相关文章:

php - mysql 项目销售

PHP + MSSQL 使用命名参数不是 '?' 的 PDO

java - Radix 在 Java 中使用队列对字符串数组进行排序

c - 对整数圆形数组进行排序,交换元素之间的元素为 1

Java排序数组

php - 我想使用重写规则来清除我的网址

javascript - JSON.parse 适用于零元素数组 (node.js)

javascript - D3 : How to detect the end of the . 每个()

javascript - 无法通过 react 中动态 div 元素的索引号从数组中删除特定元素?

php - Laravel 5.6 登录尝试失败 - 登录提交时返回方法 RequestGuard::attempt 不存在