php创建数组的方式非常简单,本身也有着C的影子,而对php数组的操作则是更加的简便
其数组类似一个散列表,每个数组元素由键和值组成,跟js数组的散列表用法相像.
$arr = array('foo' => 'bar', 12 => true);
echo $arr['foo']; // bar, "foo"是其索引
echo $arr[12]; // true, 12也是索引
// 这里$arr[0]是没有东西的
ps:
注意第一个例子如果这样会有语法错误 : echo "Data is $arr["foo"]"; //出错:引号太多
改为 : echo "Data is {$arr['foo']}"; //{ }变量定界
另外数组的键可以是integer 或者 string, 数组的值可以是任意类型,包括数组类型,
$arr = array('some'=>array(6=>5, 13=>9, 'a'=>42));
echo $arr['some'][6]; // 5
echo $arr['some'][13]; // 9
echo $arr['some']['a']; //42
如果对给出的值没有指定键名, 则取当前最大的整数索引值, 而新的键名将是该值加1
$aa = array(5=>43, 'c'=>'A', 32, 56, 'b'=>12);
echo $aa[5]; // 43
echo $aa[6]; // 32
echo $aa[7]; // 56
echo $aa['b']; // 12
echo $aa['c']; // A
//即上面的数组与下面的数组的定义一致
$aa = array(5=>43, 'c'=>'A', 6=>32, 7=>56, 'b'=>12);
数组的创建也可以像C一样:
$array = array(1, 2, 3, 4, 5); //创建数组
$nn = count($array); //count获取数组长度
for ($i = 0; $i < $nn; $i++)
echo array[$i];
//也可以采用 print_r $array 输出数组全部元素
特点
自动索引编号
$student[1] = 91;
$student[] = 85; //$student[2] = 85;
$student[] = 73;//$student[3] = 73
PHP5.4的新数组定义
$arr = [1,'james', '[email protected]'];
等价于
$arr = array(1,'james', '[email protected]');
排序方式有sort, asort, ksort, rsort
sort($array), 对数组的值进行排序, 用数字键替换原键
asort($array),对数组的值进行排序, 原键不变
ksort($array),对数组的键进行排序
$data = ['Mike'=>42, 'Jerry'=>51, 'Fred'=>37];
$arr1 = sort($data); //arr1 = [37, 42, 51];
$arr2 = asort($data); //arr2 = ["Fred"=>37, "Mike"=>42, "Jerry"=>51];
数组的默认排序是自小到大,递增排序
如:
var words = ["web","javascript","css","html","php","jquery","xhtml","ajax","dom"];
words.sort();
var len = words.length;
for(var i=0;i
如果降序排序,则要自定义一个函数来作为比较规则
words.sort(function(a,b){
return b>a ? 1:-1;//a,b两个数组进行排序,如果b比a大,则b排前面,返回一个正数,若b比a小,则a在前面,返
回一个负数
});
for(var i=0;i
$data = ['Mike'=>42, 'Jerry'=>51, 'Fred'=>37];
$arr3 = ksort($data);
//arr3 = ["Fred"=>37 , "Jerry"=>51, "Mike"=>42];