配列の切り出し.
$arr = array(1, 2, 3, 4, 5, 6); $arr2 = array_slice($arr, 0, 3); var_dump($arr2); /** 結果 */ array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
配列のマージ.
$arr1 = array(1, 2, 3, 7, 9); $arr2 = array(4, 8); $arr3 = array(5); $arr4 = array_marge($arr1, $arr2, $arr3); var_dump($arr4); /** 結果 */ array(8) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(7) [4]=> int(9) [5]=> int(4) [6]=> int(8) [7]=> int(5) }
配列からキーの一覧を取得する
$arr = array("a" => 1, "b" => 2, "c" => 3); $keys = array_keys($arr); var_dump($keys); /** 結果 */ array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }
配列から値のみを取得する
$arr = array("a" => 1, "b" => 2, "c" => 3); $vals = array_values($arr); var_dump($vals); /** 結果 */ array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
特定文字の配列を自動生成する
$a = array_fill(1, 5, '?'); var_dump($a); /** 結果 */ array(5) { [1]=> string(1) "?" [2]=> string(1) "?" [3]=> string(1) "?" [4]=> string(1) "?" [5]=> string(1) "?" }
配列から重複したデータを削除します.
$a = array("a" => 1, "b" => 2, "c" => 3, "d" => 4, "d" => 5, "a" => 9); $vals = array_unique($a); var_dump($vals); /** 結果 */ array(4) { ["a"]=> int(9) ["b"]=> int(2) ["c"]=> int(3) ["d"]=> int(5) }
配列から最初のキーを取得する
$arr = array("a" => 1, "b" => 2, "c" => 3); $key = key(array_slice($arr, 0, 1)); var_dump($key); /** 結果 */ string(1) "a"
配列から最後のキーを取得する
$arr = array("a" => 1, "b" => 2, "c" => 3); $key = key(array_slice($arr, count($arr) - 1, 1)); var_dump($key); /** 結果 */ string(1) "c"
array系を応用した関数
/** * PDOを利用したINSERTクエリーの発行. * @param object $dbh PDOの接続クラス. * @param string $table テーブル名. * @param array $values カラムと値の連想配列 * @return integer 成功の場合は1失敗の場合は-1を返します. */ function insertQuery($dbh, $table, $values) { $sql = "INSERT INTO " . $table . "(" . join(", ", array_keys($values)) . ") VALUES(" . join(", " ,array_rale("?", count($values))) . " )"; $stmt = $dbh->prepare($sql); if (!$stmt->execute(array_values($values))) { print_r($dbh->errorInfo()); return -1; } return 1; }
このような応用ができます。
ほかにもあれば今後公開してみます。