PHP array_search()で連想配列の特定の値を削除するサンプル

環境
PHP 8.1.2
Ubuntu 22.04.1 LTS

構文

if (($key = array_search(削除する値, $対象の配列)) !== false) {
unset($arr[$key]);
}
array_search()を使って連想配列(associative array)の特定の値を削除するには、unset()を使います。
引数1は削除したい値を指定し、第2引数に対象の連想配列を指定します。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
$ns = [
"k1" => 21,
"k2" => 32,
"k3" => 43,
"k4" => 54,
"k5" => 65,
];
print ("before\n");
print_r($ns);
if (($key = array_search(2, $ns)) !== false) {
unset($ns[$key]);
}
print("after\n");
print_r($ns);
?>
<?php $ns = [ "k1" => 21, "k2" => 32, "k3" => 43, "k4" => 54, "k5" => 65, ]; print ("before\n"); print_r($ns); if (($key = array_search(2, $ns)) !== false) { unset($ns[$key]); } print("after\n"); print_r($ns); ?>
<?php


$ns = [
    "k1" => 21,
    "k2" => 32,
    "k3" => 43,
    "k4" => 54,
    "k5" => 65,
];

print ("before\n");

print_r($ns);

if (($key = array_search(2, $ns)) !== false) {
    unset($ns[$key]);
}

print("after\n");

print_r($ns);

?>

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
before
Array
(
[k1] => 21
[k2] => 32
[k3] => 43
[k4] => 54
[k5] => 65
)
after
Array
(
[k1] => 21
[k2] => 32
[k3] => 43
[k4] => 54
[k5] => 65
)
before Array ( [k1] => 21 [k2] => 32 [k3] => 43 [k4] => 54 [k5] => 65 ) after Array ( [k1] => 21 [k2] => 32 [k3] => 43 [k4] => 54 [k5] => 65 )
before
Array
(
    [k1] => 21
    [k2] => 32
    [k3] => 43
    [k4] => 54
    [k5] => 65
)
after
Array
(
    [k1] => 21
    [k2] => 32
    [k3] => 43
    [k4] => 54
    [k5] => 65
)

 

PHP

Posted by arkgame