ホームページ > バックエンド開発 > PHPの問題 > PHPの配列の添字は連続している必要がありますか?

PHPの配列の添字は連続している必要がありますか?

青灯夜游
リリース: 2023-03-16 22:38:02
オリジナル
2088 人が閲覧しました

php 配列の添字は連続していない可能性があります。 PHP では、配列の添字は整数または文字列にすることができ、配列の要素の順序は添字によってではなく、要素が「結合」される順序によって決まります。 PHP 配列の添え字は、順序や連続性を持たずに任意に設定できます。たとえば、「array(2=>1,4=>1.1,3=>5,7=>'abc',0=> ;」のように設定できます。真実); "。

PHPの配列の添字は連続している必要がありますか?

このチュートリアルの動作環境: Windows7 システム、PHP8.1 バージョン、DELL G3 コンピューター

アレイの基本:

php では、配列の添字は整数または文字列になります。

php では、配列の要素の順序は、

定義:

$arr = array(元素1,元素2,...);
ログイン後にコピー

例 1:

$arr1 = array(1,1.1,5,'abc',true,false); //可以存储任何数据,此时为默认下标
$arr2 = array(2=>1,4=>1.1,3=>5,7=>'abc',0=>true); //下标可任意设定(无需顺序,无需连续)
$arr3 = array(2=>1,1.1,1=>5,'abc',0=>true); //可以加下标,也可以不加,不加下标则为默认下标

//默认下标规则:前面已经用过的最大数字下标+1
//这个数字的下标分别是:2,3,1,4,0
ログイン後にコピー

PHPの配列の添字は連続している必要がありますか?

例 2:

$arr1 = array(2=>1,'dd'=>5,1=>1.1,'abc',0=>true); //混合下标,同样遵循默认下标规则
$arr2 = array(-2=>1,'dd'=>5,1.1,'abc',true); //负数下标不算在整数下标中,而只当作字符下标
//则这个数组最后三项的下标为:0,1,2
ログイン後にコピー

PHPの配列の添字は連続している必要がありますか?

例 3:

$arr1 = array(2.7=>1,'dd'=>5,1=>1.1,'abc',true); //浮点数下标会自动转换为整数,且直接去掉小数部分
$arr2 = array("2.7"=>1,'dd'=>5,"11"=>1.1,'abc',true); //纯数字字符串下标,当作数字看待
$arr3 = array(2=>1,'dd'=>5,true=>1.1,'abc',false=>true); //布尔值当作下标,则true为1,false为0
$arr4 = array(2=>1,'dd'=>5,2=>1.1,'abc',true); //如果下标跟前面的重复,则单纯覆盖前面同名下标的值
ログイン後にコピー

PHPの配列の添字は連続している必要がありますか?

## 配列を定義する他の形式:

$arr1[] = 1;
$arr1[] = 5;
$arr1[] = 1.1;
......  //直接在变量后面使用[],就成为数组,并依次赋值
ログイン後にコピー

PHPの配列の添字は連続している必要がありますか?

$arr2['aa'] = 1;
$arr2['bb'] = 5;
$arr2[5] = 1.1;

......  //这种形式写的下标,其实跟使用array语法结构几乎一样
ログイン後にコピー

PHPの配列の添字は連続している必要がありますか?

配列の分類:

キーと値の関係から次のように分割されます:

  • 連想配列: 通常、添字が文字列である配列を指し、文字列はデータの意味を大まかに表現できます。

    例 :

  • $person = array("name" => "poe", "age" => 18, "edu" => "大学毕业");
    ログイン後にコピー
    ログイン後にコピー
  • インデックス配列: 通常、厳密に 0 から始まる配列の添字と連続する数値の添字を指します。js 配列と同様です。

配列レベルからの分割:

  • 一次元配列: 配列内の各要素の値は通常のvalue (非配列値)

    例:

  • $person = array("name" => "poe", "age" => 18, "edu" => "大学毕业");
    ログイン後にコピー
    ログイン後にコピー
  • 2 次元配列: 配列内の各項目は別の 1 次元配列です。

  • $person = array(
    "name" => array("xiaohua","xiaofang),
    "age" => array(18,22),
    "edu" => array("大学毕业","小学",)
    );
    ログイン後にコピー
  • 多次元配列: など。 。 。

    多次元配列の一般的な構文形式:

  • $v1 = 数组名[下标][下标][......]
    ログイン後にコピー

配列の走査:

トラバーサルの基本構文:

foreach($arr as [$key =>] $value) {
//这里就可以对$key and $value进行所有可能的操作 -- 因为他们就是一个变量
//$key代表每次取得元素的下标,可能是数字,也可以是字符串
//$value代表每次取得元素的值,可能是各种类型
//此循环结构会从数组的第一项一直遍历到最后一项,然后结束
}
ログイン後にコピー

配列ポインタとトラバーサルの原則:

各配列の内部には、要素を決定する「ポインタ」があります。配列が現在評価されているときに取得されます。

foreach 走査プロセス中、すべてがこのポインターに依存します。

例:

$arr1 = array(2=>1,'dd'=>5,1=>1.1,'abc',0=>true);
ログイン後にコピー
foreach ループの位置設定に加えて、ポインターには、ポインターに依存する他の関数もあります:

1:

$v1 = current($arr1); //$arr1 の現在のポインターが指す要素の値を取得します。要素を指していない場合は false

2 :

$v1 = key($arr1 ); //$arr1 の現在のポインターが指す要素の添え字を取得します。 。 。 。 。 。 。 。 。 。 。 。 。

3:

$v1 = next($arr1); //ポインタを「次の要素」に移動し、次の要素の値を取得します

4 :

$v1 = prev($arr1); //ポインタを「前の要素」に移動し、前の要素の値を取得します

5:

$ v1 =reset($arr1); //ポインタを「最初の要素」に移動し、要素の値を取得します

6:

$v1 = end($arr1); //ポインタを「最後の要素」に移動し、要素の値を取得します。

7:

$v1 = each($arr1); //要素の添え字を取得します。現在の要素と値を表示し、ポインタを次の位置に移動します。

推奨される学習: 「

PHP ビデオ チュートリアル

以上がPHPの配列の添字は連続している必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート