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', 'james@fwso.cn'];

等价于

$arr = array(1,'james', 'james@fwso.cn');

排序

排序方式有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<len;i++){
				document.write(words[i]+" "+" ");
			}	
//ajax css dom html javascript jquery php web xhtml 

如果降序排序,则要自定义一个函数来作为比较规则

words.sort(function(a,b){
				return b>a ? 1:-1;//a,b两个数组进行排序,如果b比a大,则b排前面,返回一个正数,若b比a小,则a在前面,返
				回一个负数
			});
            for(var i=0;i<len;i++){
            	words[i]=words[i].toUpperCase();//将字母变大
				document.write(words[i]+" "+" ");
				
			}
//XHTML WEB PHP JQUERY JAVASCRIPT HTML DOM CSS AJAX

键排序

$data = ['Mike'=>42, 'Jerry'=>51, 'Fred'=>37];

$arr3 = ksort($data);
    //arr3 = ["Fred"=>37 , "Jerry"=>51, "Mike"=>42];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

legendaryhaha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值