PHP 数组例子

<?
//(一)输出配置环境
/*
-------------------------------------
phpinfo();  //输出PHP配置信息,系统内部
-------------------------------------
*/


//(二)一维数组------------------------------------------------------------------------
$arr= array("id"=>2,"title"=>6);
print_r($arr);   //万能取出数组格式
echo '<br>';            //换行        
echo $arr[id];          //输出2 
echo '<br>';            //换行      
echo $arr[title];       //输出6 
echo '<br>';           //换行         

$arr2= array(1,2,3,4,5);
print_r($arr2);   //万能取出数组格
echo '<br>';     //换行
echo $arr2[0];  //输出1
echo '<br>';      //换行 
echo $arr2[1];  //输出2
echo '<br>';       //换行  

//(三)多维数组-------------------------------------------------------------------
$arr3 =array(array(1,2),array(3,4));
print_r($arr3);   //万能取出数组格
echo '<br>';       //换行  
echo $arr3[0][0];    //输出为1
echo '<br>';       //换行  

//(四)创建和修改数组----------------------------------------------------------------
$arr4=array("视频","教程");
print_r($arr4);   //万能取出数组格--修改前
echo '<br>';       //换行 
$arr4[0] ="10000";  //把 视频 修改为10000
echo '<br>';       //换行 
print_r($arr4);   //万能取出数组格--修改后
echo '<br>';       //换行



//数组 相关函数


//统计数组----------------------------------------------------------------------
//count() 函数 统计数组条数
$arr5=array("a","b");   //创建数组
echo count($arr5);     //输出为2  count()  统计数组条数
echo '<br>';       //换行





//判断是否是数组--------------------------------------------------------------
//is_array()函数  判断是不是数组
$arr6=array("c","d");   //创建数组
if (is_array($arr6)){    //is_array  判断是不是数组
echo "是数组";
}else{
echo "不是数组";
}
echo '<br>';       //换行


//拆分数组   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//explode()函数  字符分割为数组
$a="1985-04-26";
$a2=explode("-",$a);  //把A中的-拆分为数组
print_r($a2);   //万能取出数组格
$a3=$a2[0]."/".$a2[1]."/".$a2[2];   //输出为 1985/04/26
echo $a3;
echo '<br>';       //换行




//遍历数组-------------------------------------------------------------
/*foreach()
{
};
*/
$b = array(1990,1991,1992,1993,1994);
foreach($b as $key=>$value){
echo "$key  |  $value   <br>  ";
}
echo '<br>';       //换行
/*  输出为
0 | 1990 
1 | 1991 
2 | 1992 
3 | 1993 
4 | 1994 
*/







//-------------------------------------------------------------------------------------------
//array_chunk() 函数把一个数组分割为新的数组块。
//array_chunk(array,size,preserve_key)
/*
参数 描述 
array 必需。规定要使用的数组。 
size 必需。规定每个新数组包含多少个元素。 
preserve_key 可选。可能的值:
           true - 保留原始数组中的键名。 
           false - 默认。每个结果数组使用从零开始的新数组索引。 
 */


$aaa=array("a"=>"Cat","b"=>"Dog","c"=>"Horse","d"=>"Cow");
print_r(array_chunk($aaa,2));     //平均每个数组放几个
echo '<br>';       //换行
/* 输出为
Array (
[0] => Array ( [0] => Cat [1] => Dog )
[1] => Array ( [0] => Horse [1] => Cow )
) */



//把数组分组

//先分为2组  在分开输出 (结合遍历数组输出)

$aaa=array("a"=>"AA","b"=>"BB","c"=>"CC","d"=>"DD");
$aaa2=array_chunk($aaa,2);     //平均每个数组放几个  array_chunk() 函数把一个数组分为多组
foreach($aaa2 as $key=>$value){   //遍历数组   $key

echo "组ID  |  组内元素ID   |   元素值   <br>  "; 
echo "$key  |  $key[0][0]  |  $value[0]   <br>  ";
echo "$key  |  $key[1][1]  |  $value[1]   <br>  ";
echo "<br>";  
}

/*  输出为
组ID | 组内元素ID | 元素值 
0    |  [0]     | AA 
0    |  [1]     | BB 

组ID | 组内元素ID | 元素值 
1    | [0]       | CC 
1    | [1]       | DD 


其实就是 变成了
Array ( [0] => Array ( [0] => AA [1] => BB )
        [1] => Array ( [0] => CC [1] => DD ) )  
 */




//合并2个数组---------------------------------------------------------

//array_combine() 函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。
//如果其中一个数组为空,或者两个数组的元素个数不同,则该函数返回 false。
//array_combine(array1,array2)参数 描述 
//      array1 必需。规定键名。 
//       array2 必需。规定值。 


$a1=array("a","b","c","d");     //数组一
$a2=array("AA","BB","CC","DD");  //数组二
$a3=array_combine($a1,$a2);   //合并数组
foreach($a3 as $key=>$value){  //遍历数组
echo "$key  |  $value   <br>  ";  //输出数组
}

/* 
a | AA 
b | BB 
c | CC 
d | DD 


其实就是 变成了; 
Array ( [a] => AA [b] => BB [c] => CC [d] => DD ) 

*/
echo "<br>"; 



//递归地合并一个或多个数组-------------------------------------------------------
//array_merge_recursive() 函数与 array_merge() 函数 一样,将一个或多个数组的元素的合并起来,一个数//组中的值附加在前一个数组的后面。并返回作为结果的数组。
/*
array_merge_recursive(array1,array2,array3...)参数 描述 
                         array1 必需。输入的第一个数组。 
                         array2 必需。输入的第二个数组。 
                         array3 可选。可指定的多个输入数组。 
*/

$a1111=array("a"=>"AA","b"=>"BB");
$a2222=array("c"=>"CC","b"=>"BB2");
print_r(array_merge_recursive($a1111,$a2222));
//输出 Array ( [a] => AA [b] => Array ( [0] => BB [1] => BB2 ) [c] => CC ) 
echo "<br>"; 





//统计数组出现次数-------------------------------------------------
//array_count_values() 函数用于统计数组中所有值出现的次数。
//array_count_values(array)
// 参数        描述 
//array 必需。规定输入的数组。 


$abc=array("a","b","c","d","d");     //创建数组 请注意 我们下面要求数组中 同一内容出现次数
$abc2=array_count_values($abc);  //统计内容出现次数
foreach($abc2 as $key=>$value){  //遍历数组
echo "$key  |  $value  次 <br>  ";  //输出数组
}

/* 
a | 1 次 
b | 1 次 
c | 1 次 
d | 2 次 


其实就是这样
Array ( [a] => 1 [b] => 1 [c] => 1 [d] => 2 ) 

 */
echo "<br>"; 





//反转数组 -------------------------------------------
//array_flip() 函数返回一个反转后的数组
//交换数组中的键和值  把键名变为值  值变为键名
//array_flip(array) 描述  array 必需。规定输入的数组。
 

$a11=array(0=>"AA",1=>"BB",2=>"CC");   //创建数组
$a22=array_flip($a11);                //反转数组
foreach($a22 as $key=>$value){  //遍历数组
echo "$key  |  $value  <br>  ";  //输出数组
}

/* 输出结果 被反转  $KEY变成了植  $value植也变成了ID
AA | 0 
BB | 1 
CC | 2 

其实就是 变成了; 
Array ( [AA] => 0 [BB] => 1 [CC] => 2 ) 
 */
// print_r($a22);  万能查看数组









//把数组交集----------------------------------------------------------/没啥用
//array_intersect() 函数返回两个或多个数组的交集数组。(取出有相同值的数组)
/*array_intersect(array1,array2,array3...)参数 描述 
                 array1 必需。与其他数组进行比较的第一个数组。 
                 array2 必需。与第一个数组进行比较的数组。 
                 array3 可选。与第一个数组进行比较的数组。可以
				 有多个。 
*/

$a11=array(0=>"AA",1=>"CC",2=>"BB");
$a22=array(3=>"BB",4=>"AA",5=>"DD");
$a33=array(3=>"BB",4=>"AA",5=>"DD");
$a44=array(3=>"BB",4=>"A",5=>"S");
print_r(array_intersect($a11,$a22,$a33,$a44));   //前2个相比的结果  在和第3个比 ,以此推 结果在和4比
echo "<br>"; 
//输出为  Array ( [2] => BB ) 





//判断数组的KEY是否包含某值-------------------------------------------------------
//array_key_exists() 函数判断某个数组中是否存在指定的 key,如果该 key 存在,则返回 true,否则返回 false。
//array_key_exists(key,array)参数 描述 
//                      key 必需。规定键名。 
//                      array 必需。规定输入的数组。 


$a123=array("a"=>"AA","b"=>"BB");
if (array_key_exists("a",$a123))
	{
	echo "包含KEY  a";
	}
else
	{
	echo "不包含KEY  a";
	}

//输出  包含KEY  a

//或者
echo "<br>";
$a1234=array("AA","BB");
if (array_key_exists(0,$a1234))
	{
	echo "包含KEY  0";
	}
else
	{
	echo "不包含KEY  0";
	}
//输出  包含KEY 0
echo "<br>";






//取得数组的KEY键名字-------------------------------------------------------------------
//array_keys() 函数返回包含数组中所有键名的一个新数组
/*
array_keys(array,value)参数 描述 
        array 必需。规定输入的数组。 
        value 可选。指定值的索引(键)。 
        strict 可选。与 value 参数一起使用。可能的值:
               true - 根据类型返回带有指定值的键名。 
               false - 默认值。不依赖类型。  
*/


$aaa9=array("a"=>"AAA","b"=>"BBB","c"=>"CCC");  //创建数组
$aaa10=array_keys($aaa9);      //取键名值
foreach($aaa10 as $key=>$value){  //遍历数组 此时键名已经变成了$value array("a","b","c")
echo "$value | 键名值 <br>";  //输出$value为键名
}


/*输出为
a | 键名值 
b | 键名值 
c | 键名值

同样也是输出这样意思
Array ( [0] => a [1] => b [2] => c ) 
*/

//取指定值的键名
echo "<br>";
$aaaaa9=array("a"=>"AAA","b"=>"BBB","c"=>"CCC");  //创建数组
$aaaaa10=array_keys($aaaaa9,"BBB");     //取指定值的键名
foreach($aaaaa10 as $key=>$value){  //遍历数组 此时键名已经变成了$value array("b")
echo "$value | 键名值 <br>";  //输出$value为键名
}
// 输出为 b | 键名值 






//给数组排序----------------------------------------------------------------
//array_multisort() 函数对多个数组或多维数组进行排序
/*
语法
array_multisort(array1,sorting order,sorting type,array2,array3...)

参数 描述 
array1 必需。规定输入的数组。 
sorting order 可选。规定排列顺序。可能的值是 SORT_ASC 和 SORT_DESC。 
sorting type 可选。规定排序类型。可能的值是SORT_REGULAR、SORT_NUMERIC和SORT_STRING。 
array2 可选。规定输入的数组。 
array3 可选。规定输入的数组。 


字母循序
SORT_ASC - 默认,按升序排列。(A-Z) 
SORT_DESC - 按降序排列。(Z-A) 

随后可以指定排序的类型:
SORT_REGULAR - 默认。将每一项按常规顺序排列。 
SORT_NUMERIC - 将每一项按数字顺序排列。 
SORT_STRING - 将每一项按字母顺序排
列。 
*/

$a123=array("DDD","BBB","CCC","AAA");
$b123=array("DDD","BBB","CCC","AAA");
array_multisort($a123,$b123);
print_r($a123);
print_r($b123);
echo "<br>";
//输出
//Array ( [0] => AAA [1] => BBB [2] => CCC [3] => DDD ) 
//Array ( [0] => AAA [1] => BBB [2] => CCC [3] => DDD ) 

//效果不好........
$a5555=array("DDD","BBB","CCC","AAA");
$b6666=array("Pluto","Fido","Missy","Missy");
array_multisort($a5555,SORT_ASC,$b6666,SORT_DESC);
print_r($a5555);
print_r($b6666);
echo "<br>";





//在尾部加值------------------------------------------------------------------------
//array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
/*
语法
array_push(array,value1,value2...)参数 描述 
             array 必需。规定一个数组。 
             value1 必需。规定要添加的值。 
             value2 可选。规定要添加的值。 
*/

$a12=array("Dog","Cat");
array_push($a12,"Horse","Bird");
print_r($a12);
echo "<br>";

//输出为  Array ( [0] => Dog [1] => Cat [2] => Horse [3] => Bird )





//随机取一个数组值---------------------------------------
//array_rand() 函数从数组中随机选出一个或多个元素,并返回。
/*
array_rand(array,number)参数 描述 
                 array 必需。规定输入的数组参数。 
                 number 可选。默认是 1。规定返回多少个随机的元素。 
*/

$a345=array("a"=>"AA","b"=>"BB","c"=>"CC");
print_r(array_rand($a345,1));
echo "<br>";
//输出a






//在数组中搜索取出指定值--------------------------------------------------------------------
//array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。
/*
语法
array_search(value,array,strict)参数 描述 
value 必需。规定在数组中搜索的值。 
array 必需。被搜索的数组。 
strict 可选。可能的值:
        true 
      false - 默认 
       如果值设置为 true,还将在数组中检查给定值的类型
 */


$a2323=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
echo array_search("Dog",$a2323);

//输出a







//把数组中多个值替换
//array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替。
/*
语法
array_splice(array,offset,length,array)参数 描述 
     array 必需。规定数组。 
     offset 必需。数值。如果 offset 为正,则从输入数组中该值指定的偏移量开始移除。如果 offset 为负,则从输入数组末尾倒数该值指定的偏移量开始移除。 
     length 可选。数值。如果省略该参数,则移除数组中从 offset 到 结尾的所有部分。如果指定了 length 并且为正值,则移除这么多元素。如            果指定了 length 且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的元素。 
            array 被移除的元素由此数组中的元素替代。如果没有移除任何值,则此数组中的元素将插入到指定位置。 
*/



$aa1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$aa2=array(0=>"Tiger",1=>"Lion");
array_splice($aa1,0,2,$aa2);   //把数组1  0 和2  换成 数组2
print_r($aa1);
echo "<br>";
//输出为  Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )







//移去数组中  相同的值----------------------------------------------------------------------------
//array_unique() 函数移除数组中的重复的值,并返回结果数组。保留一个

$a99=array("a"=>"Cat","b"=>"Dog","c"=>"Cat");
print_r(array_unique($a99));
echo "<br>";

// 输出为  Array ( [a] => Cat [b] => Dog )




//判断某个值是否在 数组中
//in_array() 函数在数组中搜索给定的值
/*
语法
in_array(value,array,type)参数 描述 
     value 必需。规定要在数组搜索的值。 
     array 必需。规定要搜索的数组。 
     type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。 
*/

$people = array("Peter", "Joe", "Glenn", "Cleveland");
if (in_array("Glenn",$people))  //如果查询 到Glenn  则
  {
  echo "存在";
  }
else
  {
  echo "不存在";
  }




?> 

猜你喜欢

转载自blog.csdn.net/qq_40437676/article/details/108243588