This is a collection of questions that come up every now and then about syntax in PHP. This is also a Community Wiki, so everyone is invited to participate in maintaining this list.
It used to be hard to find questions about operators and other syntax tokens.¹
The main idea is to have links to existing questions on Stack Overflow, so it's easier for us to reference them, not to copy over content from …
如果我在PHP中定义一个数组,例如(我没有定义它的大小):
$cart = array();
Run Code Online (Sandbox Code Playgroud)
我只是使用以下内容添加元素吗?
$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;
Run Code Online (Sandbox Code Playgroud)
PHP中的数组是否有添加方法,例如,cart.add(13)?
如何在不比较键的情况下将一个数组附加到另一个数组?
$a = array( 'a', 'b' );
$b = array( 'c', 'd' );
Run Code Online (Sandbox Code Playgroud)
在结束它应该是:Array( [0]=>a [1]=>b [2]=>c [3]=>d )
如果我使用类似[]或者array_push,它会导致这些结果之一:
Array( [0]=>a [1]=>b [2]=>Array( [0]=>c [1]=>d ) )
//or
Array( [0]=>c [1]=>d )
Run Code Online (Sandbox Code Playgroud)
它应该是一些东西,这样做,但以更优雅的方式:
foreach ( $b AS $var )
$a[] = $var;
Run Code Online (Sandbox Code Playgroud) 说我有三个词
d1={1:2,3:4}
d2={5:6,7:9}
d3={10:8,13:22}
Run Code Online (Sandbox Code Playgroud)
如何创建一个d4结合这三个词典的新内容?即:
d4={1:2,3:4,5:6,7:9,10:8,13:22}
Run Code Online (Sandbox Code Playgroud) 一个相当简单的问题.有什么区别:
$merged = array_merge($array1, $array2);
Run Code Online (Sandbox Code Playgroud)
和
$merged = $array1 + $array2;
Run Code Online (Sandbox Code Playgroud)
?
我有两个像这样的数组:
array(
'11' => '11',
'22' => '22',
'33' => '33',
'44' => '44'
);
array(
'44' => '44',
'55' => '55',
'66' => '66',
'77' => '77'
);
Run Code Online (Sandbox Code Playgroud)
我想组合这两个数组,使它不包含重复,并保留其原始键.例如输出应该是:
array(
'11' => '11',
'22' => '22',
'33' => '33',
'44' => '44',
'55' => '55',
'66' => '66',
'77' => '77'
);
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它正在更改原来的密钥:
$output = array_unique( array_merge( $array1 , $array2 ) );
Run Code Online (Sandbox Code Playgroud)
有解决方案吗
我最近学会了如何在PHP中使用+运算符连接2个数组.
但请考虑这段代码......
$array = array('Item 1');
$array += array('Item 2');
var_dump($array);
Run Code Online (Sandbox Code Playgroud)
输出是
array(1){[0] => string(6)"Item 1"}
为什么这不起作用?跳过速记和使用$array = $array + array('Item 2')也不起作用.它与钥匙有关吗?
有人可以帮我解释一下吗?我有两个代码片段,一个像我期望的那样工作,但另一个没有.
这有效
$a = array('a' => 1, 'b' => 2);
$b = array('c' => 3);
$c = $a + $b;
print_r($c);
// Output
Array
(
[a] => 1
[b] => 2
[c] => 3
)
Run Code Online (Sandbox Code Playgroud)
事实并非如此
$a = array('a', 'b');
$b = array('c');
$c = $a + $b;
print_r($c);
// Output
Array
(
[0] => a
[1] => b
)
Run Code Online (Sandbox Code Playgroud)
这里发生了什么??为什么第二个版本也没有将两个数组一起添加?我误解了什么?我应该做什么呢?或者它是PHP中的错误?