こんにちは。明月です。
JavaやC#で配列とリスト(list)は別の文法です。Array(配列)の場合はその個数を決めてデータを入れるし、配列の個数を減らしたり増えたりするのが出来ないです。
List(リスト)の場合は連結リストアルゴリズムでなっている構造でポインタを連携しながら追加したり削除したりする資料構造になっています。
PHPではその配列とリストの区分が別に分けていることではなく、arraryで宣言してリストみたいに追加や削除ができる構造になっています。
<?php
$title = "title";
// type1はarray関数を利用する。
$type1 = array("Test", "Hello", "World");
// 括弧([])で宣言する。
$type2[0] = "Test";
// 配列(リスト)を追加する時には別の関数が要らなく、ただ括弧([])宣言でできる。
$type2[1] = "Hello";
$type2[2] = "World";
?>
<!DOCTYPE html>
<html>
<head>
<title>
<?=$title?>
</title>
</head>
<body>
<?php
foreach($type1 as $item) {
echo $item." ";
}
?>
<br />
<?php
foreach($type2 as $item) {
echo $item." ";
}
?>
</body>
</html>
そしてPHPには連関配列ということでマップやディクショナリみたいに使う配列があります。
連関配列は上の配列でインデックスの数代わりに文字を入れると連関配列になります。
<?php
$title = "title";
// array関数を利用して宣言する方法
$type1 = array(
"First" => "Test",
"Second" => "Hello",
"Third" => "World"
);
// 配列みたいに別の宣言なしで([])を利用して宣言する方法
$type2["First"] = "Test";
$type2["Second"] = "Hello";
$type2["Third"] = "World";
?>
<!DOCTYPE html>
<html>
<head>
<title>
<?=$title?>
</title>
</head>
<body>
<?php
foreach($type1 as $key => $value) {
echo $key." => ".$value."<br />";
}
?>
<br />
<br />
<br />
<?php
foreach($type2 as $key => $value) {
echo $key." => ".$value."<br />";
}
?>
</body>
</html>
ここまで配列(リスト)の定義を確認しました。それでデータを追加や削除に関して確認しましょう。
関数としてはarray_pushとarray_pop関数があります。array_pushは配列のデータを続けて入れることです。つまり、上の例で[3]までデータを入れたら[4]にデータを入れることですね。
array_popは最後のデータ[4]までデータを入れたら[4]データをリターンして削除する関数です。
link - https://www.php.net/manual/en/function.array-push.php
link - https://www.php.net/manual/en/function.array-pop.php
<?php
$title = "title";
$type1 = array("Test", "Hello", "World");
// [4] 配列にpushを利用してデータを入れる。
array_push($type1,"push");
?>
<!DOCTYPE html>
<html>
<head>
<title>
<?=$title?>
</title>
</head>
<body>
<?php
foreach($type1 as $key => $value) {
echo $key." => ".$value."<br />";
}
?>
<br />
<br />
<br />
<?php
// [4]配列を削除する。
array_pop($type1);
?>
<br />
<?php
foreach($type1 as $key => $value) {
echo $key." => ".$value."<br />";
}
?>
</body>
</html>
array_popの場合は最後でデータを取り除きますが、最初のデータを取り除き関数(array_shift)もあります。
link - https://www.php.net/manual/en/function.array-shift.php
<?php
$title = "title";
$type1 = array("Test", "Hello", "World");
array_push($type1,"push");
?>
<!DOCTYPE html>
<html>
<head>
<title>
<?=$title?>
</title>
</head>
<body>
<?php
foreach($type1 as $key => $value) {
echo $key." => ".$value."<br />";
}
?>
<br />
<br />
<br />
<?php
// 最初の配列を取り除く。
array_shift($type1);
?>
<br />
<?php
foreach($type1 as $key => $value) {
echo $key." => ".$value."<br />";
}
?>
</body>
</html>
今回は配列の中でデータを入れる関数(array_splice)です。
array_spliceは一つのデータを入れることより、2つの配列を合わせることと同じです。
link - https://www.php.net/manual/en/function.array-splice.php
<?php
$title = "title";
$type1 = array("Test", "Hello", "World");
$type2 = array("push");
// 配列を合わせることも可能
array_splice($type1, 2, 0, $type2);
// そのままデータを入れることも可能
array_splice($type1 , 3, 0, "push2");
// パラメタは初めがあわせような配列、2つ目が位置、3つ目が削除配列数、4つ目が合わせる配列になる。
// つまり、上の$type1は$type2を「2」番目に入れたので「Test - 0, Hello - 1, push - 2, World -3」になる。
// "push2"を3番目に入れるので「Test - 0, Hello - 1, push - 2, push2 - 3,World - 4」になる。
// もし、3つ目が「0」ではなく、「1」の場合は「World」が削除される。「-1」の場合は「push」が削除される。「-2」の場合は「Hello, push」が削除される。
?>
<!DOCTYPE html>
<html>
<head>
<title>
<?=$title?>
</title>
</head>
<body>
<?php
foreach($type1 as $key => $value) {
echo $key." => ".$value."<br />";
}
?>
</body>
</html>
その後、sort関数、extract関数、array_walk関数がありますが、sortの場合は整列、extractは抽出ですが、あまり使わないですね。
sortの場合はリストの数字の対象なので、クラスやオブジェクトタイプならsort関数を作らなければならないと思います。
link - https://www.php.net/manual/en/function.sort.php
link - https://www.php.net/manual/en/function.extract.php
link - https://www.php.net/manual/en/function.array-walk.php
- [PHP] 分散設定ファイル(.htaccess) 使用方法2020/01/28 03:00:00
- [PHP] データベース(mariaDB)を連結して使う方法2020/01/24 03:00:00
- [PHP] IOに関して2020/01/23 03:00:00
- [PHP] requireとinclude、そして「@」の使用方法2020/01/22 03:00:00
- [PHP] Fatal及びNotice,、Warningメッセージ処理する方法2020/01/19 03:00:00
- [PHP] xDebug設定する方法2020/01/18 03:00:00
- [PHP] $_SERVER, $GLOBALS, $_GET, $_POST, $_REQUEST, $_COOKIE, $_SESSION, $_FILES, $_ENV(getenv())2020/01/17 03:00:00
- [PHP] データ確認関数(var_dump, debug_zval_dump, print_r)2020/01/16 03:00:00
- [PHP] 例外処理(try ~ catch ~ finally)2020/01/15 03:00:00
- [PHP] 配列とリスト(list)2020/01/14 03:00:00
- [PHP] インタフェースと抽象クラス、クラス継承、parent、this2020/01/13 03:00:00
- [PHP] functionとclass使用方法、アクセス修飾子、そしてstatic2020/01/09 23:35:27
- [PHP] 基本ページ作成方法と変数使用方法2020/01/06 23:44:20
- [PHP] Composer設定2019/12/27 08:49:09
- [PHP] PHP 開発環境設定とEclipse(IDE)の設定2019/12/26 07:36:47
- check2024/04/10 19:03:53
- [Java] 64.Spring bootとReactを連結する方法(Buildする方法)2022/03/25 21:02:18
- [Javascript] Node.jsをインストールしてReactを使う方法2022/03/23 18:01:34
- [Java] 63. Spring bootでcronスケジューラとComponentアノテーション2022/03/16 18:57:30
- [Java] 62. Spring bootでWeb-Filterを設定する方法(Spring Security)2022/03/15 22:16:37
- [Java] JWT(Json Web Token)を発行、確認する方法2022/03/14 19:12:58
- [Java] 61. Spring bootでRedisデータベースを利用してセッションクラスタリング設定する方法2022/03/01 18:20:52
- [Java] 60. Spring bootでApacheの連結とロードバランシングを設定する方法2022/02/28 18:45:48
- [Java] 59. Spring bootのJPAでEntityManagerを使い方2022/02/25 18:27:48
- [Java] 58. EclipseでSpring bootのJPAを設定する方法2022/02/23 18:11:10
- [Java] 57. EclipseでSpring bootを設定する方法2022/02/22 19:04:49
- [Python] Redisデータベースに接続して使い方2022/02/21 18:23:49
- [Java] Redisデータベースを接続して使い方(Jedisライブラリ)2022/02/16 18:13:17
- [C#] Redisのデータベースを接続して使い方2022/02/15 18:46:09
- [CentOS] Redisデータベースをインストールする方法とコマンドを使い方2022/02/14 18:33:07