php实现排列数组和有序排列方法汇总

伊谢尔伦
伊谢尔伦 原创
2023-03-14 08:56:01 1045浏览

使用array_merge() 函数

用了一个array_unique去除了一个数组里面的重复,但是发现下标保留了原数组的下标,但是php使用for循环需要下标整齐,所以寻找重新排列数组下标的方法array_merge可以解决这个问题

array_merge() 函数把两个或多个数组合并为一个数组。

如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数字索引的,则键名会以连续方式重新索引。

注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。

<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge($a1,$a2));
?>

输出:

Array ( [a] => Horse [b] => Cat [c] => Cow )

例子 2

仅使用一个数组参数:

<?php
$a=array(3=>"Horse",4=>"Dog");
print_r(array_merge($a));
?>

输出:

Array ( [0] => Horse [1] => Dog )

合并成新表并且有序排列的方法

<?php 
/** 
la (3,5,8,11) 
lb(2,6,8,9,11,15) 
合并为lc,有序排列。 
用php实现,不能用sort之类的函数!!!! 
**/ 
class union { 
    var $lista = array(); 
    var $listb = array(); 
    var $listc = array(); 
     
    function getlenght($arr) { //获得表长度 
        return count($arr); 
    } 
     
    function getelement($arr, $n) { //获取表中第n个元素,返回 
        return $e = $arr[$n] ? $arr[$n] : ''; 
    } 
     
    function listinsert($arr, $e) { //表末尾插入元素 
        $arr[] = $e; 
        return $arr; 
    } 
} 
$phpig = new union(); 
$lista = $phpig->lista = array(3, 5, 8, 11); 
$listb = $phpig->listb = array(2, 6, 8, 9, 11, 15); 
$listc = $phpig->listc; 
$lena = $phpig->getlenght($lista); //取得表大小 
$lenb = $phpig->getlenght($listb); 
$i = $j = 0; 
while($i < $lena && $j < $lenb) { 
    $ea = $phpig->getelement($lista, $i); 
    $eb = $phpig->getelement($listb, $j); 
    if($ea <= $eb) { 
        $listc = $phpig->listinsert($listc, $ea); 
        ++$i; 
    } else { 
        $listc = $phpig->listinsert($listc, $eb); 
        ++$j; 
    } 
} 
while($i < $lena) { 
    $ea = $phpig->getelement($lista, $i); 
    $listc = $phpig->listinsert($listc, $ea); 
    ++$i; 
}
while($j < $lenb) { 
    $eb = $phpig->getelement($listb, $j); 
    $listc = $phpig->listinsert($listc, $eb); 
    ++$j; 
} 
print_r($listc); 
?>

以上就是php实现排列数组和有序排列方法汇总的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。