如何添加,删除PHP关联数组

如何添加,删除PHP关联数组,第1张

示例如下:

<?php

//定义一个数组

$arr = array()

//添加元素

$arr['name']='baiduzhidao'

$arr['url']='baiduzhidaocom'

//删除某个元素

unset($arr['url'])

//删除数组

unset($arr)

这个功能需求来自于网站运营策略,举倒子:

在一个排行列表中,默认有以下元素,顺序有一定的依据,假设是按下载次数排列。

$rows = array(

array('name'=>'QQ2010'),

array('name'=>'QQ2009'),

array('name'=>'迅雷5'),

array('name'=>'飞信2010'),

array('name'=>'Kugoo2010'),

array('name'=>'TTplayer'),

array('name'=>'Firefox4.0'),

array('name'=>'美图秀秀'),

array('name'=>'360safe'),

array('name'=>'Chrome6')

)

如果有一个客户[可牛杀毒]想买花10元/元下我们第二个位置,可以大家想,直接把QQ2009替换掉不就完事了吗。不,那样的话用户体验并不好,明明QQ2009是一个下载次数比较多的软件,为什么在列表中却没有了呢。

其实我们真正的需求是把QQ2009以下的单元都往后推,腾出第二个位置来给[可牛杀毒]。如果页面中只能显示10个单元,那倒霉的就是[Chrome6]了,谁叫他们付费买我们的位置呢,呵呵。

再说到程序原理上来吧,PHP要实现这个需求,挺简单,用数组函数array_splice就可以了,具体用法参照PHP手册。

给一个完整的例子吧:

<?php

$rows = array(

array('name'=>'QQ2010',),

array('name'=>'QQ2009',),

array('name'=>'迅雷5',),

array('name'=>'飞信2010',),

array('name'=>'Kugoo2010',),

array('name'=>'TTplayer',),

array('name'=>'Firefox4.0',),

array('name'=>'美图秀秀',),

array('name'=>'360safe',),

array('name'=>'Chrome6',),

)

$pop = array(

'2'=>array('name'=>'可牛杀毒'),

'5'=>array('name'=>'金山词霸2010'),

)

foreach($pop as $key=>$p){

array_splice($rows, $key-1, 0, array($p))

}

var_dump($rows)

?>

最近的结果是:

array(12) {

[0]=>

array(1) {

["name"]=>

string(6) "QQ2010"

}

[1]=>

array(1) {

["name"]=>

string(8) "可牛杀毒"

}

[2]=>

array(1) {

["name"]=>

string(6) "QQ2009"

}

[3]=>

array(1) {

["name"]=>

string(5) "迅雷5"

}

[4]=>

array(1) {

["name"]=>

string(12) "金山词霸2010"

}

[5]=>

array(1) {

["name"]=>

string(8) "飞信2010"

}

[6]=>

array(1) {

["name"]=>

string(9) "Kugoo2010"

}

[7]=>

array(1) {

["name"]=>

string(8) "TTplayer"

}

[8]=>

array(1) {

["name"]=>

string(10) "Firefox4.0"

}

[9]=>

array(1) {

["name"]=>

string(8) "美图秀秀"

}

[10]=>

array(1) {

["name"]=>

string(7) "360safe"

}

[11]=>

array(1) {

["name"]=>

string(7) "Chrome6"

}

}

其实在js里面的数组是不能用字符串做键名的, Object在js是对象是没有长度的. 而数组是Array

var arr = new Array()或者 arr = []这两种都是定义数组, 建议用第二种json格式写法

如果你想要像php那样在未知数组长度的情况下添加数组元素, 那么请使用数组的自带方法push

arr.push( 'newValue' )

这样就是向数组末尾添加数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11759285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存