php数组arr[]省略键名 给变量名加上一对空的方括号 则取当前最大整数索引值,新的键名将是该值加上 1

<?php

use yii\helpers\Html;

/* @var $this yii\web\View */
/* @var $model common\models\Post */

$this->title = '新增';
$this->params['breadcrumbs'][] = ['label' => '文章', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
$this->params['breadcrumbs'][] = '增加';
//file_put_contents('D:\log.txt',$this->params['breadcrumbs'],FILE_APPEND);

var_dump($this->params['breadcrumbs']);
$arr1 = [];
$arr1[] = 1;
var_dump($arr1);
$arr1[] = 2;
var_dump($arr1);
$arr1['a'] = 3;
var_dump($arr1);
$arr1[] = 4;
var_dump($arr1);
?>

打印消息
C:\wamp64\www\advanced\backend\views\post\create.php:13:
array (size=3)
0 =>
array (size=2)
‘label’ => string ‘文章’ (length=6)
‘url’ =>
array (size=1)
0 => string ‘index’ (length=5)
1 => string ‘新增’ (length=6)
2 => string ‘增加’ (length=6)
C:\wamp64\www\advanced\backend\views\post\create.php:16:
array (size=1)
0 => int 1
C:\wamp64\www\advanced\backend\views\post\create.php:18:
array (size=2)
0 => int 1
1 => int 2
C:\wamp64\www\advanced\backend\views\post\create.php:20:
array (size=3)
0 => int 1
1 => int 2
‘a’ => int 3
C:\wamp64\www\advanced\backend\views\post\create.php:22:
array (size=4)
0 => int 1
1 => int 2
‘a’ => int 3
2 => int 4

php官方文档
用方括号的语法新建/修改
可以通过明示地设定其中的值来修改一个已有数组。

这是通过在方括号内指定键名来给数组赋值实现的。也可以省略键名,在这种情况下给变量名加上一对空的方括号([])。

$arr[key] = value;
$arr[] = value;
// key 可以是 integer 或 string
// value 可以是任意类型的值
如果 $arr 还不存在,将会新建一个,这也是另一种新建数组的方法。不过并不鼓励这样做,因为如果 $arr 已经包含有值(例如来自请求变量的 string)则此值会保留而 [] 实际上代表着字符串访问运算符。初始化变量的最好方式是直接给其赋值。。

要修改某个值,通过其键名给该单元赋一个新值。要删除某键值对,对其调用 unset() 函数。

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // This is the same as $arr[13] = 56;
                // at this point of the script

$arr["x"] = 42; // This adds a new element to
                // the array with key "x"
                
unset($arr[5]); // This removes the element from the array

unset($arr);    // This deletes the whole array
?>

Note:

如上所述,如果给出方括号但没有指定键名,则取当前最大整数索引值,新的键名将是该值加上 1(但是最小为 0)。如果当前还没有整数索引,则键名将为 0。

注意这里所使用的最大整数键名不一定当前就在数组中。它只要在上次数组重新生成索引后曾经存在过就行了。以下面的例子来说明:

<?php
// 创建一个简单的数组
$array = array(1, 2, 3, 4, 5);
print_r($array);

// 现在删除其中的所有元素,但保持数组本身不变:
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);

// 添加一个单元(注意新的键名是 5,而不是你可能以为的 0)
$array[] = 6;
print_r($array);

// 重新索引:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

以上例程会输出:

Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
Array
(
)
Array
(
[5] => 6
)
Array
(
[0] => 6
[1] => 7
)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值