「5.5多次元配列の展開」からのメモ。
- list()を使って配列を通常の変数に展開
list()は関数じゃなくて、PHPの構文です。
<?php list($first , $second , $third) = array("a" , "b" , "c"); echo "\$second = $second\n"; ?>
$second = b
- array_key_exists()とisset()の違い
配列中にあるキーが存在するかどうかはarray_key_exists()で見るべき。isset()だと値がNULLの場合にfalseになってしまう。
<?php function s($v) { if($v === 0){ return "0"; } if($v === NULL){ return "NULL"; } if($v === ""){ return "\"\""; } if($v === false){ return "false"; } if($v === true){ return "true"; } return $v; } $hoge = array(0 , NULL , "" , false); foreach($hoge as $k => $v) { printf("%s\t:array_key_exists = %s\t:isset = %s\n" , s($v) , s(array_key_exists($k , $hoge)) , s(isset($hoge[$k]))); } ?>
0 :array_key_exists = true :isset = true NULL :array_key_exists = true :isset = false "" :array_key_exists = true :isset = true false :array_key_exists = true :isset = true
- 配列中の特定の部分を削除
<?php $hoge = array("a" , "b" , "c"); $removed = array_splice($hoge , 1 , 2); print_r($hoge); print_r($removed); ?>
Array ( [0] => a ) Array ( [0] => b [1] => c )
キーや値を指定して削除するための関数は準備されてるのかな?
- 配列中に任意の配列を挿入
<?php $hoge = array("a" , "b" , "c"); $removed = array_splice($hoge , 1 , 0 , array("x" , "y")); print_r($hoge); ?>
Array ( [0] => a [1] => x [2] => y [3] => b [4] => c )