php中的数组及排序

目录

  • 数组
  • 排序
    • 值排序(自大到小,自小到大)
    • 键排序

数组

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];

你可能感兴趣的:(php中的数组及排序)