Я работаю над небольшой идеей, используя PHP с Laravel, и я хотел бы удалить ключ конечной точки. если существует.

array:2 [▼
  "multiple" => array:2 [▼
    0 => array:5 [▼
      "label" => "EDIT"
      "key" => "edit"
      "method" => "GET"
      "icon" => "EDITICON"
      "endpoint" => "settings.attributes.edit"
    ]
    1 => array:5 [▼
      "label" => "Delete"
      "key" => "edit"
      "method" => "DELETE"
      "icon" => "DELETEICON"
      "endpoint" => "settings.attributes.delete"
    ]
  ]
  "bulk" => array:1 [▼
    0 => array:4 [▼
      "label" => "DELETE"
      "method" => "PUT"
      "type" => "DELETE"
      "endpoint" => "settings.attributes.delete"
    ]
  ]
]
php
-2
AiTech 15 Окт 2021 в 20:04

3 ответа

Лучший ответ
public function clean(&$array, $unwanted_key) {
    unset($array[$unwanted_key]);
    foreach ($array as &$value) {
        if (is_array($value)) {
            $this->clean($value, $unwanted_key);
        }
    }
}

Попробуй это

0
Maik Lowrey 15 Окт 2021 в 17:16

Вы можете использовать встроенную функцию PHP unset() для удаления элемента из массива.

unset($arr["endpoint"]);
0
Asad Hayat 15 Окт 2021 в 17:13

Вы можете сделать это с помощью рекурсии. Но в этом случае вы можете найти небольшое, но приятное решение. только для изучения эффектов ;-) Ответ @Ruth Davis хороший, но она не очень гибкая. Поэтому рекурсия. Но не всем нравится рекурсия.

$array = [
    'multiple' => [
        [
            "label" => "EDIT",
            "key" => "edit",
            "method" => "GET",
            "icon" => "EDITICON",
            "endpoint" => "settings.attributes.edit",
        ],
        [
            "label" => "Delete",
            "key" => "edit",
            "method" => "DELETE",
            "icon" => "DELETEICON",
            "endpoint" => "settings.attributes.delete",
        ]
    ],
];

$pattern = '/(,\"endpoint\"\:\".*?\")/i';
$result = preg_replace($pattern, '', json_encode($array));
$clearedArray = json_decode($result, true);
print_r($clearedArray);
0
Maik Lowrey 15 Окт 2021 в 17:29