设为首页 收藏本站
查看: 1338|回复: 0

[经验分享] php数组合并排序

[复制链接]

尚未签到

发表于 2018-12-22 14:04:16 | 显示全部楼层 |阅读模式
  例子:




  结果:
  Array (     [1] => ad     [5] => be     [3] => cf )
  Array (     [1] => ad     [3] => cf     [5] => be )
  php的数组在这门语言里使用得非常多。数组的一些常见操作像split/explode,join/implode,排序 (sort,asort,ksort,arsort),两数组合并(array_combine),键值翻转(array_flip),当然还有比较复杂 的数组合并。
数组合并至少有4种形式。
1.第一种php数组合并方式(使用[]合并)
  $a = array(1=>'a',2=>'b',3=>'c');
$b = array(1=>'d',2=>'e',3=>'f');
foreach($b as $v)
{
     $a[] = $v;
}
var_export($a);
得到
  array (
1 => 'a',
2 => 'b',
3 => 'c',
4 => 'd',
5 => 'e',
6 => 'f',
)
这种方式的数组合并,新增元素的键值是在原来数字键值之上增加。
如果原来的键值不是数字的,那么新增元素的键值将从0开始。
  2.第二种数组合并方式(使用array_unshift合并)
  $a = array(1=>'a',2=>'b',3=>'c');
$b = array(1=>'d',2=>'e',3=>'f');
foreach($b as $v)
{
     array_unshift($a,$v);
}
var_export($a);
得到
  array (
0 => 'f',
1 => 'e',
2 => 'd',
3 => 'a',
4 => 'b',
5 => 'c',
)
可以看到,使用array_unshift方式添加元素,每次都会在数组头部新增元素,并且这些元素的键值总是从0开始,整个数组的键将重新从0开始计算。
3.使用array_merge合并php数组
  $a = array(1=>'a',2=>'b',3=>'c');
$b = array(1=>'d',2=>'e',3=>'f');
$a = array_merge($a,$b);
var_export($a);
运算结果是
  array (
0 => 'a',
1 => 'b',
2 => 'c',
3 => 'd',
4 => 'e',
5 => 'f',
)
可以看到数组的键也被从0开始重新计算了。
  4.使用+合并php数组
  $a = array(1=>'a',2=>'b',3=>'c');
$b = array(1=>'d',2=>'e',3=>'f');
$a = $a+$b; // $a += $b;
var_export($a);
我们得到了令人惊讶的结果
  array (
1 => 'a',
2 => 'b',
3 => 'c',
)
数组$b被忽略了。我们可以看到,如果数组$b中有和$a重复键值的元素,那么这些元素将被忽略。换言之:保留键值,如果有重复,以第一个数组中的键为准。
  5.php数组合并两个数组(一个数组做键名,另一个做值)
  有两个数组: $arry_a,$arry_b
合并为一个新数组:$arry_ab,要求$arry_a中的值为新数组的键名,$arry_b中的值为新数组相对应的值.
  $array_ab=array_combine($arry_a,$array_b);
这是数组的PHP内置函数 ,函数括号中的前一个数组的值为新数组的索引,后一个参数的值为新数组的值






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-654482-1-1.html 上篇帖子: Unable to locate package php5 下篇帖子: php错误Cannot modify header information
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表