PHP �е�����ʵ������һ������ӳ�䡣ӳ����һ�ְ� values ������ keys �����͡��������ںܶ�������Ż�����˿������������������飬���б���������ɢ�б���ӳ���һ��ʵ�֣����ֵ䣬���ϣ�ջ�������Լ���������ԡ���������Ԫ�ص�ֵҲ��������һ�����飬���νṹ�Ͷ�ά����Ҳ������ġ�
������Щ�ṹ�����˱��ֲ�ķ�Χ��������ÿ�ֽṹ���ٻ��ṩһ�����ӡ�Ҫ�õ���Щ�ṹ�ĸ�����Ϣ������ο��йش˹������������������
������ array() ���Խṹ���½�һ�����顣���������������ö��ŷָ��� ����key�� => ֵ��value���ԡ�
array( key => value , ... ) // ����key��������һ������ integer ���ַ��� string // ֵ��value���������������͵�ֵ
���һ�����鵥Ԫ֮��Ķ��ſ���ʡ�ԡ�ͨ�����ڵ������鶨���У����糣�� array(1, 2) ������ array(1, 2, )���Զ������鶨��ͨ���������һ�����ţ�����Ҫ���һ���µ�Ԫʱ�����㡣
�� 5.4 �����ʹ�ö����鶨������� [] ��� array()��
Example #1 һ��������
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);
// �� PHP 5.4 ��
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>
key ������ integer ���� string��value �������������͡�
���� key �������µ�ǿ��ת����
��������鶨���ж����Ԫ��ʹ����ͬһ����������ֻʹ�������һ����֮ǰ�Ķ��������ˡ�
Example #2 ����ǿ���븲��ʾ��
<?php
$array = array(
1 => "a",
"1" => "b",
1.5 => "c",
true => "d",
);
var_dump($array);
?>
�������̻������
array(1) { [1]=> string(1) "d" }
���������еļ�������ǿ��ת��Ϊ 1����ÿһ���µ�Ԫ���Ḳ��ǰһ����ֵ�����ʣ�µ�ֻ��һ�� "d"��
PHP �������ͬʱ���� integer �� string ���͵ļ�������Ϊ PHP ʵ�ʲ���������������������顣
����Ը�����ֵû��ָ����������ȡ��ǰ������������ֵ�����µļ������Ǹ�ֵ��һ�����ָ���ļ����Ѿ�����ֵ�����ֵ�ᱻ���ǡ�
Example #3 ��� integer �� string ����
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
100 => -100,
-100 => 100,
);
var_dump($array);
?>
�������̻������
array(4) { ["foo"]=> string(3) "bar" ["bar"]=> string(3) "foo" [100]=> int(-100) [-100]=> int(100) }
key Ϊ��ѡ����δָ����PHP ���Զ�ʹ��֮ǰ�ù������ integer �������� 1 ��Ϊ�µļ�����
Example #4 û�м�������������
<?php
$array = array("foo", "bar", "hallo", "world");
var_dump($array);
?>
�������̻������
array(4) { [0]=> string(3) "foo" [1]=> string(3) "bar" [2]=> string(5) "hallo" [3]=> string(5) "world" }
������ֻ��ijЩ��Ԫָ���������������Ŀ��ã�
Example #5 ���Բ��ֵ�Ԫָ������
<?php
$array = array(
"a",
"b",
6 => "c",
"d",
);
var_dump($array);
?>
�������̻������
array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [6]=> string(1) "c" [7]=> string(1) "d" }
���Կ������һ��ֵ "d" ���Զ������˼��� 7����������֮ǰ�������������� 6��
���鵥Ԫ����ͨ�� array[key] ������ʡ�
Example #6 �������鵥Ԫ
<?php
$array = array(
"foo" => "bar",
42 => 24,
"multi" => array(
"dimensional" => array(
"array" => "foo"
)
)
);
var_dump($array["foo"]);
var_dump($array[42]);
var_dump($array["multi"]["dimensional"]["array"]);
?>
�������̻������
string(3) "bar" int(24) string(3) "foo"
Note:
�����źͻ����ſ��Ի���ʹ�����������鵥Ԫ������ $array[42] �� $array{42} ��������Ч����ͬ����
�� PHP 5.4 �������ֱ�ӶԺ��������õĽ��������������ã��ڴ�֮ǰֻ��ͨ��һ����ʱ������
�� PHP 5.5 �����ֱ�Ӷ�һ������ԭ�ͽ�����������á�
Example #7 ���������
<?php
function getArray() {
return array(1, 2, 3);
}
// on PHP 5.4
$secondElement = getArray()[1];
// previously
$tmp = getArray();
$secondElement = $tmp[1];
// or
list(, $secondElement) = getArray();
?>
Note:
��ͼ����һ��δ������������������κ�δ�������һ�����ᵼ��
E_NOTICE
���������Ϣ������ΪNULL
��
����ͨ����ʾ���趨���е�ֵ����һ���������顣
����ͨ���ڷ�������ָ�������������鸳ֵʵ�ֵġ�Ҳ����ʡ�Լ���������������¸�����������һ�Կյķ����ţ�[]����
$arr[key] = value; $arr[] = value; // key ������ integer �� string // value �������������͵�ֵ
��� $arr �������ڣ������½�һ������Ҳ����һ���½�����ķ���������������������������Ϊ��� $arr �Ѿ�������ֵ������������������� string�����ֵ�ᱣ���� [] ʵ���ϴ������ַ����������������ʼ����������÷�ʽ��ֱ�Ӹ��丳ֵ����
Ҫ��ij��ֵ��ͨ����������õ�Ԫ��һ����ֵ��Ҫɾ��ij��ֵ�ԣ�������� 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 )
�кܶ��������ĺ������μ����麯��һ�ڡ�
Note:
unset() ��������ɾ�������е�ij��������Ҫע�����齫�����ؽ������������Ҫɾ�����ؽ������������� array_values() ������
<?php
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
unset($a[2]);
/* will produce an array that would have been defined as
$a = array(1 => 'one', 3 => 'three');
and NOT
$a = array(1 => 'one', 2 =>'three');
*/
$b = array_values($a);
// Now $b is array(0 => 'one', 1 =>'three')
?>
foreach ���ƽṹ��ר����������ġ����ṩ��һ���ķ������������顣
Ӧ��ʼ�������ַ�����ʾ�����������ϼ������š������� $foo['bar'] ������ $foo[bar]������Ϊʲô�أ��������ϵĽű��м����������
<?php
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?>
�����Ǵ�ģ��������������С���ôΪʲô�����أ�ԭ���Ǵ˴�������һ��δ����ij�����bar���������ַ�����'bar'��ע�����ţ�����
PHP ���ܻ����Ժ���˳��������ҵ�����Ĵ�������ͬ�������֡��������У�����Ϊ
PHP �Զ������ַ�����û�����ŵ��ַ����Ҳ���Ӧ���κ���֪���ţ�ת����һ����ֵΪ�����ַ����������ַ��������磬���û�г�������Ϊ
bar
��PHP ���������Ϊ 'bar' ��ʹ��֮��
Note: �Ⲣ����ζ�������������������š��ò��Ÿ�����Ϊ�����������ļ������ţ������ʹ PHP ���ܽ������ǡ�
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// Simple array:
$array = array(1, 2);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
echo "\nChecking $i: \n";
echo "Bad: " . $array['$i'] . "\n";
echo "Good: " . $array[$i] . "\n";
echo "Bad: {$array['$i']}\n";
echo "Good: {$array[$i]}\n";
}
?>�������̻������
Checking 0: Notice: Undefined index: $i in /path/to/script.html on line 9 Bad: Good: 1 Notice: Undefined index: $i in /path/to/script.html on line 11 Bad: Good: 1 Checking 1: Notice: Undefined index: $i in /path/to/script.html on line 9 Bad: Good: 2 Notice: Undefined index: $i in /path/to/script.html on line 11 Bad: Good: 2
��ʾ����Ϊ�ĸ������ӣ�
<?php
// Show all errors
error_reporting(E_ALL);
$arr = array('fruit' => 'apple', 'veggie' => 'carrot');
// Correct
print $arr['fruit']; // apple
print $arr['veggie']; // carrot
// Incorrect. This works but also throws a PHP error of level E_NOTICE because
// of an undefined constant named fruit
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit]; // apple
// This defines a constant to demonstrate what's going on. The value 'veggie'
// is assigned to a constant named fruit.
define('fruit', 'veggie');
// Notice the difference now
print $arr['fruit']; // apple
print $arr[fruit]; // carrot
// The following is okay, as it's inside a string. Constants are not looked for
// within strings, so no E_NOTICE occurs here
print "Hello $arr[fruit]"; // Hello apple
// With one exception: braces surrounding arrays within strings allows constants
// to be interpreted
print "Hello {$arr[fruit]}"; // Hello carrot
print "Hello {$arr['fruit']}"; // Hello apple
// This will not work, and will result in a parse error, such as:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// This of course applies to using superglobals in strings as well
print "Hello $arr['fruit']";
print "Hello $_GET['foo']";
// Concatenation is another option
print "Hello " . $arr['fruit']; // Hello apple
?>
���� error_reporting ����ʾ
E_NOTICE
����Ĵ�������Ϊ
E_ALL
��ʱ��������Щ����Ĭ�������
error_reporting
���رղ���ʾ��Щ��
�����һ���й涨��һ�����ڷ����ţ�"["��"]"��֮�������һ�����ʽ������ζ�ſ�������д��
<?php
echo $arr[somefunc($bar)];
?>
����һ���ú�������ֵ��Ϊ�������������ӡ�PHP Ҳ��������֪����������֮ǰ�Ѿ�������
<?php
$error_descriptions[E_ERROR] = "A fatal error has occured";
$error_descriptions[E_WARNING] = "PHP issued a warning";
$error_descriptions[E_NOTICE] = "This is just an informal notice";
?>
ע�� E_ERROR Ҳ�Ǹ��Ϸ��ı�ʶ�����ͺ͵�һ�������е� bar һ����������һ������ʵ���Ϻ�����д����һ���ģ�
<?php
$error_descriptions[1] = "A fatal error has occured";
$error_descriptions[2] = "PHP issued a warning";
$error_descriptions[8] = "This is just an informal notice";
?>
��Ϊ E_ERROR ���� 1���ȵȡ�
Ҳ����һ�죬PHP ����С����ܻ�������һ���������߹ؼ��֣������û�����ϣ���Ժ����Լ��ij����������µij������Ǿ����鷳�ˡ������Ѿ����������� empty �� default ���������ˣ���Ϊ��������������
Note: ����һ�Σ���˫�����ַ����У������������������ǺϷ������ "$foo[bar]" �ǺϷ��ģ�"�Ϸ�"��ԭ��Ϊ valid����ʵ�ʲ����У���ô��ȷʵ���Է�������ĸ�Ԫ�أ����ǻᱨһ������δ����� notice��������Σ�ǿ�ҽ��鲻Ҫʹ�� $foo[bar]������д������Ҫʹ�� $foo['bar'] ������������Ԫ�ء�--haohappy ע��������Ϊʲô�μ����ϵ����Ӻ��ַ����еı��������еĽ��͡�
�������� integer��float��string��boolean �� resource ���ͣ������һ��ֵת��Ϊ���飬���õ�һ������һ��Ԫ�ص����飬���±�Ϊ 0����Ԫ�ؼ�Ϊ�˱�����ֵ�����仰˵��(array)$scalarValue �� array($scalarValue) ��ȫһ����
���һ�� object ����ת��Ϊ array������Ϊһ�����飬�䵥ԪΪ�ö�������ԡ�������Ϊ��Ա�������������м������⣺�������Բ��ɷ��ʣ�˽�б���ǰ�����������ǰ����������ǰ�����һ�� '*' ��ǰ����Щǰ��ǰ����һ�� NULL �ַ�����ᵼ��һЩ����Ԥ֪����Ϊ��
<?php
class A {
private $A; // This will become '\0A\0A'
}
class B extends A {
private $A; // This will become '\0B\0A'
public $AA; // This will become 'AA'
}
var_dump((array) new B());
?>
����������������Ϊ 'AA'����������һ��ʵ������ '\0A\0A'��
�� NULL
ת��Ϊ array ��õ�һ���յ����顣
������ array_diff() ��������������Ƚ����顣
PHP �е����������зdz������;��������һЩʾ����
<?php
// This:
$a = array( 'color' => 'red',
'taste' => 'sweet',
'shape' => 'round',
'name' => 'apple',
4 // key will be 0
);
$b = array('a', 'b', 'c');
// . . .is completely equivalent with this:
$a = array();
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name'] = 'apple';
$a[] = 4; // key will be 0
$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// After the above code is executed, $a will be the array
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4), and $b will be the array
// array(0 => 'a', 1 => 'b', 2 => 'c'), or simply array('a', 'b', 'c').
?>
Example #8 ʹ�� array()
<?php
// Array as (property-)map
$map = array( 'version' => 4,
'OS' => 'Linux',
'lang' => 'english',
'short_tags' => true
);
// strictly numerical keys
$array = array( 7,
8,
0,
156,
-10
);
// this is the same as array(0 => 7, 1 => 8, ...)
$switching = array( 10, // key = 0
5 => 6,
3 => 7,
'a' => 4,
11, // key = 6 (maximum of integer-indices was 5)
'8' => 2, // key = 8 (integer!)
'02' => 77, // key = '02'
0 => 12 // the value 10 will be overwritten by 12
);
// empty array
$empty = array();
?>
Example #9 ����
<?php
$colors = array('red', 'blue', 'green', 'yellow');
foreach ($colors as $color) {
echo "Do you like $color?\n";
}
?>
�������̻������
Do you like red? Do you like blue? Do you like green? Do you like yellow?
ֱ�Ӹı������ֵ�� PHP 5 �����ͨ�����ô�����������֮ǰ�İ汾��Ҫ��Ҫ��ȡ��ͨ�ķ�����
Example #10 ��ѭ���иı䵥Ԫ
<?php
// PHP 5
foreach ($colors as &$color) {
$color = strtoupper($color);
}
unset($color); /* ensure that following writes to
$color will not modify the last array element */
// Workaround for older versions
foreach ($colors as $key => $color) {
$colors[$key] = strtoupper($color);
}
print_r($colors);
?>
�������̻������
Array ( [0] => RED [1] => BLUE [2] => GREEN [3] => YELLOW )
��������һ���±�� 1 ��ʼ�����顣
Example #11 �±�� 1 ��ʼ������
<?php
$firstquarter = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>
�������̻������
Array ( [1] => 'January' [2] => 'February' [3] => 'March' )
Example #12 �������
<?php
// fill an array with all items from a directory
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
$files[] = $file;
}
closedir($handle);
?>
����������ġ�Ҳ����ʹ�ò�ͬ�����������ı�˳������Ϣ�μ����麯���������� count() ����������������Ԫ�صĸ�����
Example #13 ��������
<?php
sort($files);
print_r($files);
?>
��Ϊ�����е�ֵ����Ϊ����ֵ��Ҳ������һ�����顣�������Բ����ݹ���ά���顣
Example #14 �ݹ�Ͷ�ά����
<?php
$fruits = array ( "fruits" => array ( "a" => "orange",
"b" => "banana",
"c" => "apple"
),
"numbers" => array ( 1,
2,
3,
4,
5,
6
),
"holes" => array ( "first",
5 => "second",
"third"
)
);
// Some examples to address values in the array above
echo $fruits["holes"][5]; // prints "second"
echo $fruits["fruits"]["a"]; // prints "orange"
unset($fruits["holes"][0]); // remove "first"
// Create a new multi-dimensional array
$juices["apple"]["green"] = "good";
?>
����(Array) �ĸ�ֵ���ǻ��漰��ֵ�Ŀ�����ʹ�����������ͨ���������������顣
<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 is changed,
// $arr1 is still array(2, 3)
$arr3 = &$arr1;
$arr3[] = 4; // now $arr1 and $arr3 are the same
?>