㈠ php怎样把得到的数据的值保存在一个数组里面
input 存兆扒在着2个方式 get 和post ,并猜此你可以根据你的需求去绝迅选择。
现在很多框架都支持直接将post或者get到的数据作为整个数组保存哈
$input_array = $_GET['paramsName'];
参考链接:http://php.net/manual/zh/reserved.variables.get.php
㈡ php数组怎么增加一个元素
方法:1、使用array_unshift()函数在数组的开头增加一个元素,语法“array_unshift(array,值)”;2、使用array_push()函数在数组的尾部增加一个元素,语法“array_push(array,值)”。
本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑
在数组头添加元素
array_unshift()函数在数组头添加元素。所有己有的数值键都会相应地修改,以反映其在数组中的新位置,但是关联键不受影响。其形式如下:
array_unshift(array array,mixed variable[,mixed variable])
下面这个例子在$fruits数组前面添加了两种水果:
$fruits = array("apple""banana");array_unshift($fruits,"orange""pear")// $fruits = array("orange""pear""apple""banana");
在数组尾添加元素
array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
array_push()函数的返回值是int型,是压入数据后数组中元素的个数,可以为此函数传递多个变量作为参数,同时向数组压入多个变量。其形式为:
array_push(array,value1,value2.)
下面这个例子在$fruits数组中又添加了两个水果:
view sourceprint?$fruits = array("apple""banana");array_push($fruits,"orange""pear")//$fruits = array("apple""banana""orange""pear")
推荐学习:《PHP视频教程》
㈢ PHP使用array_multisort对多个数组或多维数组进行排序
PHP中array_multisort可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
关联(string)键名保持不变,但数字键名会被重新索引。
输入数组被当成一个表的列并以行来排序——这类似于
SQL
的
ORDER
BY
子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。——这句话是理解此函数用法的关键。
第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。
排序顺序标志:
■SORT_ASC
-
按照上升顺序排序
■SORT_DESC
-
按照下降顺序排序
排序类型标志:
■SORT_REGULAR
-
将项目按照通常方法比较
■SORT_NUMERIC
-
将项目按照数值比较
■SORT_STRING
-
将项目按照字符串比较
每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效
-
在此之前为默认值
SORT_ASC
和
SORT_REGULAR。
看看两个实际例子:
1、一次对多个数组进行排序:
复制代码
代码如下:
$num1
=
array(3,
5,
4,
3);
$num2
=
array(27,
50,
44,
78);
array_multisort($num1,
SORT_ASC,
$num2,
SORT_DESC);
print_r($num1);
print_r($num2);
//result:
Array
(
[0]
=>
3
[1]
=>
3
[2]
=>
4
[3]
=>
5
)
Array
(
[0]
=>
78
[1]
=>
27
[2]
=>
44
[3]
=>
50
)
2、对多维数组(以二位数组为例)进行排序:
复制代码
代码如下:
$arr
=
array(
'0'
=>
array(
'num1'
=>
3,
'num2'
=>
27
),
'1'
=>
array(
'num1'
=>
5,
'num2'
=>
50
),
'2'
=>
array(
'num1'
=>
4,
'num2'
=>
44
),
'3'
=>
array(
'num1'
=>
3,
'num2'
=>
78
)
);
foreach
(
$arr
as
$key
=>
$row
){
$num1[$key]
=
$row
['num1'];
$num2[$key]
=
$row
['num2'];
}
array_multisort($num1,
SORT_ASC,
$num2,
SORT_DESC,
$arr);
print_r($arr);
//result:Array([0]=>Array([num1]=>3
[num2]=>78)
[1]=>Array([num1]=>3
[num2]=>27)
[2]=>Array([num1]=>4
[num2]=>44)
[3]=>Array([num1]=>5
[num2]=>50))
总结:
这里的重点就是,先把要排序的key存到一个一维数组中,然后就可以使用array_multisort()这个函数,将数组按照key进行排序了,当然,这里的排序你完全可以不适用array_multisort()这个函数,仅仅通过foreach遍历也能达到这个效果,但是既然php开发者给我们提供了更好的办法,我们就可以省去不必要的麻烦了。
㈣ php二维数组添加元素
索引数组
for($i=0;$i<count($array);++$i){$array[$i]['url']=$aarray[$i]['id'];}
下标数组
foreach($arrayas$key=>$val){$array[$key]['url']=$array[$key]['id'];}
以上这个可以实现你想要的功能,还可以加以判断
㈤ PHP将两个关联数组合并函数提高函数效率
在foreach中循环查询数据代码量比较少,但是性能乱大差比较低,好点的解决办法是将id收集起来,用in一次性查询,但是这引发了数据结构不是我们用PHP自带的函数可以合并的,今天测试了一下:
使用下面的字节写的函数仿迟可以解决
从数据库中取出来的数据总是或多或少不符合我们心目中的数据结哗皮构,类似于下面的俩个数组,要形成SQL中类似于left join后两个数组合并:
代码如下:
$test1 = Array(0 = Array('id' = 9478137,
'create_time' = 1394760724),
1 = Array('id' = 9478138,
'create_time' = 1394760725),
2 = Array('id' = 9478138,
'create_time' = 1394760725));
$test2 = array(0 = array('id' = 9478137,
'message' = 'love you'),
1 = array('id' = 9478138,
'message' = 'miss you'));
如果要将这两个数组,类似于sql中的left join 关联起来我们用什么函数呢?额我没有找见就自己写了
刚开始的时候,用的是嵌套循环:效率低下
代码如下:
function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();
foreach($array1 as $key1 = $value1 ) {
foreach ($array2 as $key2 = $value2) {
if($value1[$field1] == $value2[$field2]) {
$ret[$key1] = array_merge($value1, $value2);
}
}
}
return $ret;
}
改进后的办法,使用数组下标,使用两次循环:形成类似于left join的方式
代码如下:
$test1 = Array(0 = Array('id' = 9478137,
'create_time' = 1394760724),
1 = Array('id' = 9478138,
'create_time' = 1394760725),
2 = Array('id' = 9478138,
'create_time' = 1394760725));
$test2 = array(0 = array('id' = 9478137,
'message' = 'love you'),
1 = array('id' = 9478138,
'message' = 'miss you'));
function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();
//使用数组下标的办法
foreach ($array2 as $key = $value) {
$array3[$value[$field1]] = $value;
}
foreach ($array1 as $key = $value) {
$ret[] = array_merge($array3[$value[$field1]], $value);
}
return $ret;
}
$ret = _mergerArray($test1, $test2, 'id', 'id');
print_r($ret);exit;
打印出来结果如下:
代码如下:
Array
([0] = Array
([id] = 9478137
[message] = love you
[create_time] = 1394760724)
[1] = Array
([id] = 9478138
[message] = miss you
[create_time] = 1394760725)
[2] = Array
([id] = 9478138
[message] = miss you
[create_time] = 1394760725))
相当于left join了吧?
㈥ php用explode字符串后用一个符号链接,多出了一个符号
这样更简单:
<?php
function gostrsplit($str) {
$str_array = explode(",",$str);
return implode('→', $str_array);
}
echo gostrsplit("1,2,3");
?>
㈦ PHP ArrayPHP Array 函数
PHP Array 函数是用于处理数组数据的一系列关键工具,它们提供了创建、操作、搜索、修改、排序和合并数组的功能。以下是关于 PHP Array 函数的主要概述:
数组创建与基本操作: array:用于创建关联数组或索引数组。
数组转换与操作: array_change_key_case:将数组键名转换为大写或小写。 array_chunk:将数组分割成指定大小的块,常用于分页或需要分段处理的场景。
排序与查找: sort、rsort、asort、ksort:这些函数根据数组键名或值进行排序。 sort:对数组值进行升序排序。 rsort:对数组值进行降序排序。 asort:对数组值进行升序排序,保持键名与值的关联。 ksort:对数组键名进行升序排序。 array_search:在数组中查找特定值,并返回对应的键名。
比较与计算: array_diff:比较两个或多个数组,返回它们的差异部分。 array_intersect:计算两个或多个数组的交集。 array_count_values:统计数组中每个元素出现的次数。
合并与连接: array_merge:合并一个或多个数组,合并后的数组值不保留原有数组的结构。 array_merge_recursive:递归合并一个或多个数组,保持原有数组的结构。
数组修改与操作: array_pop:删除数组的最后一个元素,并返回该元素的值。 array_push:将一个或多个元素压入数组的末尾。 array_splice:删除并替换数组中的部分元素。
这些 PHP Array 函数为开发者提供了丰富的工具集,用于构建和管理数组数据,对构建复杂的数据处理逻辑和应用程序结构至关重要。