PHP数组函数

本文介绍了PHP中的多个常用函数,包括array_column()、array_merge()、implode()等,并提供了丰富的示例代码来展示如何使用这些函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

array_column()函数(PHP 5.5+):返回输入数组中某个单一列的值:

语法:

array_column(array,column_key,index_key);

实例:

<?php
// 表示由数据库返回的可能记录集的数组
$a = array(
  array(
    'id' => 5698,
    'first_name' => 'Bill',
    'last_name' => 'Gates',
  ),
  array(
    'id' => 4767,
    'first_name' => 'Steve',
    'last_name' => 'Jobs',
  ),
  array(
    'id' => 3809,
    'first_name' => 'Mark',
    'last_name' => 'Zuckerberg',
  )
);

$last_names = array_column($a, 'last_name', 'id');
print_r($last_names);
?>

输出:

参考w3school array_column

 

array_merge()函数(PHP 4+):把一个或多个数组合并成一个数组:

注意点:

1.若两个或多个数组元素有相同的键名,则最后的元素会覆盖其他元素。

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

3.该函数与array_merge_recursive()之间的不同点是在处理两个或多个数组元素有相同键名情况,array_merge_recursive()不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组

语法:

array_merge(array1,array2,array3...)

实例:

<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));
?>

输出:

后面的同名键名覆盖了前面的。

参考w3school array_merge

implode()函数(PHP 4+):把数组元素组合成字符串

注意点:

1.implode()函数接受两种参数顺序,但由于历史原理,explode()是不行的,必须保证seprator参数在string参数之前才行。

2.implode()函数的seprator参数是可选的,但是为了向后兼容,推荐使用两个参数。

3.该函数是二进制安全的。

语法:

implode(separator,array)

 

实例:

 

<?php
$arr = array('Hello','World!','I','love','Shenzhen!');
echo implode(" ",$arr)."<br>";
echo implode("+",$arr)."<br>";
echo implode("-",$arr)."<br>";
echo implode("X",$arr);
?>

输出:

参考w3school implode

explode()函数(PHP 4+):把字符串打散为数组

注意点:

1.参数separator不能是空字符串

2.该函数是二进制安全的

explode(separator,string,limit)

实例:

<?php
$str = "Hello world. I love Shanghai!";
print_r (explode(" ",$str));
?>

输出:

参考w3school explode

is_array()函数(PHP4+): 判断一个变量是否是数组

语法:

bool is_array ( mixed $var )

若var为数组,则返回TRUE,反之返回FALSE

实例:

<?php
$yes = array('this', 'is', 'an array');

echo is_array($yes) ? 'Array' : 'not an Array';
echo "<br>";

$no = 'this is a string';

echo is_array($no) ? 'Array' : 'not an Array';
?>

输出:

参考网址

array_keys(PHP4+):返回数组的所有键或键的子集

语法:

array array_keys ( array $array [, mixed $search_value = NULL [, bool $strict = FALSE ]] )

参数:

array:包含要返回键的数组

search_value:若指定的话,只包含这些值的键才会返回

strict:决定在search过程中是否使用严格比较===

返回值:

返回所有键的一个数组。

实例:

<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
echo '<br>';
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
echo '<br>';
$array = array("color" => array("blue", "red", "green"),
               "size"  => array("small", "medium", "large"));
print_r(array_keys($array));
?>

输出:

参考网址

 

unset()(PHP4+):销毁指定的变量

语法:

void unset ( mixed $var [, mixed $... ] )

在函数内部的unset()销毁变量的行为根据变量类型的不同而不同。若在函数内unset一个全局变量,则只有局部变量会被销毁,在调用环境内的变量将会保持在unset被调用前的值。

实例:

<?php
function destroy_foo() 
{
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

输出:

参考网址

addslashes()(PHP4+):用斜线引用字符串

语法:

string addslashes ( string $str )

返回一个带斜线的字符串,而该字符串是需要原样输出的,有以下字符:

1.单引号 '

2.双引号 "

3.反斜杠 \

4.NUL

实例:

<?php
$str = "O'Reilly?";
eval("echo '" . addslashes($str) . "';");
?>

输出:

参考网页

empty()(PHP 4+):判断一个变量是否为空

语法:

bool empty ( mixed $var )

若变量不存在或其值为FALSE,则被判定为空,若变量不存在,则empty()不会生成警告。

实例:

<?php
$var = 0;

// Evaluates to true because $var is empty
if (empty($var)) {
    echo '$var is either 0, empty, or not set at all<br>';
}

// Evaluates as true because $var is set
if (isset($var)) {
    echo '$var is set even though it is empty';
}
?>

输出:

参考网址

stripslashes()函数(PHP 4+):去引用一个被引用的字符串

语法:

string stripslashes ( string $str )

返回一个去掉带反斜杠的字符串,比如\'变成了',双反斜杠\\变成但反斜杠\

实例:

<?php
$str = "Is your name O\'reilly?";

// Outputs: Is your name O'reilly?
echo stripslashes($str);
?>

输出:

参考网址

 

strpos()函数(4+):查找字符串在另一个字符串中第一次出现的位置

注意:

1.strpos()对大小写敏感

2.函数是二进制安全的

语法:

strpos(string,find,start)

返回值:

返回字符串在另一字符串中第一次出现的位置,若没有找到字符串则返回FALSE,字符串位置从0开始,不是从1开始。

实例:

<?php
echo strpos("You love php, I love php too!","php");
?>

输出:

参考网址

substr()函数(PHP 4+):返回字符串的一部分

语法:

substr(string,start,length)

若start参数是负数且length小于等于start,则length为0

实例:

<?php
echo substr("Hello world",0,10)."<br>";
echo substr("Hello world",1,8)."<br>";
echo substr("Hello world",0,5)."<br>";
echo substr("Hello world",6,6)."<br>";

echo substr("Hello world",0,-1)."<br>";
echo substr("Hello world",-10,-2)."<br>";
echo substr("Hello world",0,-6)."<br>";
echo substr("Hello world",-2-3)."<br>";
?>

输出:

参考网址

strtoupper()函数(4+):把字符串转换为大写

语法:

strtoupper(string)

实例:

<?php
echo strtoupper("Hello WORLD!");
?>

输出:

参考网址

trim()函数(PHP 4+):移除字符串两侧的空白字符或者预定义字符

语法:

trim(string,charlist)

实例:

<?php
$str = "Hello World!";
echo $str . "<br>";
echo trim($str,"Hed!");
?>

输出:

详细参考网页

in_array()(PHP 4+):搜索数组中是否存在指定值,若存在返回true,否则返回false。

语法:

in_array(search,array,type)

实例:

<?php
header("Content-type: text/html; charset=utf-8");
$people = array("Bill", "Steve", "Mark", "David");

if (in_array("Mark", $people))
  {
  echo "匹配已找到";
  }
else
  {
  echo "匹配未找到";
  }
?>

输出:

参考网址

str_replace()(PHP 4+):以其他字符替换字符串中的一些字符,区分大小写。

语法:

str_replace(find,replace,string,count)

注意点:

1.若搜索字符串为数组,则返回数组

2.若搜索字符串为数组,则它将对数组中的每个元素进行查找和替换

3.若同时需要对数组进行查找和替换,且需要执行替换的元素少于查找到的元素数量,则多余元素将用空字符串进行替换

4.若查找的是数组,而替换的是字符串,则替代字符串将对所有查找到的值起作用

实例:

<?php
echo str_replace("world","Shenzhen","Hello world!");
?>

输出:

参考网址

preg_replace()函数:该函数执行一个正则表达式的搜索和替换

语法:

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

搜索subject中匹配pattern部分,以replacement进行替换。

参数:

1.$pattern:要搜索的模式,可以是字符串或一个字符串数组

2.$replacement:用于替换的字符串或字符串数组

3.$subject:要搜索替换的目标字符串或字符串数组

4.$limit:可选,对每个模式用于每个subject字符串的最大可替换次数,默认-1,无限制。

5.$count:可选,为替换执行的次数

返回值:

若subject是一个数组,则preg_replace()返回一个数组,其他情况下返回一个字符串;若匹配被查找到,替换后的subject被返回,其他情况下,返回没有改变subject。若发生错误,返回NULL。

实例:

<?php
$string = 'google 123, 456';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = 'runoob ${2},$3';
echo preg_replace($pattern, $replacement, $string);
?>

输出:

参考网址

正则表达式学习网址

 

 

 

 

 

=========================================>

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值