当前位置:首页 » 编程语言 » php二维数组键值

php二维数组键值

发布时间: 2025-05-22 01:16:08

php二维数组如何去掉重复值

方法一:

//二维数组去掉重复值
functionarray_unique_fb($array2D){
foreach($array2Das$v){
$v=join(',',$v);//降维,也可以用implode,将一维数组转换为用逗号连接的字符串
$temp[]=$v;
}
$temp=array_unique($temp);//去掉重复的字符串,也就是重复的一维数组
foreach($tempas$k=>$v){
$temp[$k]=explode(',',$v);//再将拆开的数组重新组装
}
return$temp;
}

方法二:

//二维数组去掉重复值,并保留键值
functionarray_unique_fb($array2D){
foreach($array2Das$k=>$v){
$v=join(',',$v);//降维,也可以用implode,将一维数组转换为用逗号连接的字符串
$temp[$k]=$v;
}
$temp=array_unique($temp);//去掉重复的字符串,也就是重复的一维数组
foreach($tempas$k=>$v){
$array=explode(',',$v);//再将拆开的数组重新组装
//下面的索引根据自己的情况进行修改即可
$temp2[$k]['id']=$array[0];
$temp2[$k]['title']=$array[1];
$temp2[$k]['keywords']=$array[2];
$temp2[$k]['content']=$array[3];
}
return$temp2;
}

㈡ php数组、键名、索引、键值有什么区别

数悄宴组的根据类型来分,分为关联数组和数字索引数组。

㈢ php 二维数组转换为一维键值对数组

function transIndex($index, $Data) { $return = array(); foreach ($index as $key => $value) { $return[$value] = $Data[$key]; } return $return;}

㈣ php多维数组问题,,高分求高手帮帮,,

1、二维转一维:
function fixArray($r,$k)
{
$out = array();
foreach ($r as $key=>$val) {
if (is_array($val)){
$out = array_merge($out, fixArray($val,$key));
} else{
$out["'$key'"] = $val;//$val;
}
}
return $out;
}
$arr =array(
'2'=>array('5'=>'ok','6'=>'good'),
'3'=>array('7'=>'yes','8'=>'cool'),
'4'=>array('9'=>'look')
);
$output = fixArray($arr,"");
print_r($output);

2、你说的带主键名3,基本上不可能实现,因为如果键名相同,则值会互相覆盖,或者还是需要用2维数组。

㈤ PHP数组提交数据的问题

这个很简单啊,文本框用[]可以直接用获取数组格式,例如

产品1:<inputtype="text"name="name[]">
<inputtype="text"name="price[]">
产品2:<inputtype="text"name="name[]">
<inputtype="text"name="price[]">

在php里用$_POST['name']就能获取产品名称这个数组,然后用循环遍历这个名称数组,把产品信息 重组成新数组。

foreach($_POST['name']as$k=>$v){
$data[$k]['name']=$_POST['name'][$k];
$data[$k]['price']=$_POST['price'][$k];
}

这个$data就是所有产品数据,数据完整性就自己去把控了

㈥ php合并两个二维数组,如果两个二维数组的id值相等,则合并为一个新的数组

id本应该是唯一性的键值,利用好就行。以下输出没有对id排序,因为觉得没必要。
需要时可以再排。
function mergeById(&$a,&$b){
$c=array();
foreach($a as $e) $c[$e['id']]=$e;
foreach($b as $e) $c[$e['id']]=isset($c[$e['id']])? $c[$e['id']]+$e : $e;
return $c;
}
$a=//数组一;
$b=//数组二;
var_mp(mergeById($b,$a));
===========
array
1 =>
array
'id' => int 1
'name' => string 'test' (length=4)
'subject' => string 'subject' (length=7)
2 =>
array
'id' => int 2
'name' => string 'test2' (length=5)
3 =>
array
'id' => int 3
'name' => string 'test3' (length=5)
'subject' => string 'subject3' (length=8)

㈦ PHP怎样判断一个数组中是否有的键值为空

一、for循环
最简单也是最直接的方法,用for循环来遍历数组。对于已知维数的数组可以判断,但如果是未知的多维数组,该怎么办?
二、implode();
用implode()将数组输出为字符串,判断输出的字串是否为空。初看上去似乎是个不错的方法,可惜跟上一点一样,对于二维以上数组就不行了。举个例子:
$arr= array(array(),array(),array());
$str = implode(',',$arr);
if(empty($str)) echo "空";
else echo "非空";

很明显$arr是个含有三个空数组的二维数组,应该也算是空的,可是输出的确是非空。判断失败。
三、count();
不得不承认,我最先想到的也是这个函数,网上也有好多网友把这个当答案,并以为已经解决问题。可是请看下面的例子:
$arr= array("","","");
echo count($arr);
四、in_array('', $arr));
不多说,还是看例子:

$arr= array("d","s","");
echo in_array('', $arr);

这个只能说明数组中有空的元素,不能证明数组是空的。很明显也不行
五、empty();
这个cpyeh觉得跟前面几种方法差不多

$arr= array("","","");
if(empty($arr)) echo "空";
else echo "非空";

结果还是非空
可以在以上例子上加一句print_r($arr);看看...
基本上cpyeh能想到的加上网上找到的也就以上这些,不明白的是网上居然有人会提到is_array(),可能是对php还不是很了解,需要多翻翻手册。很遗憾最终还是找不到一个完美的解决方法,不过对于一般的应用,第一种或第二种应该可以满足了,cpyeh选了方便的第二种。如果对以上例子有疑问欢迎留言在此互相交流。
后计:
如果判断一个二维数组可以这样,同时干掉那些空的:
$this->dataObj->getTotalScore(&$resultinfo,$uids);
$judge = implode("",$resultinfo);
if(!empty($judge))//数组不为空
{ //去掉数组键值为空
foreach($resultinfo as $key =>$getoutvisnull)
{
if(empty($getoutvisnull))
{
unset($resultinfo[$key]);
}
}
$allscorearray[] = $resultinfo;
}

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:535
微博数据库设计 发布:2025-07-05 15:30:55 浏览:32
linux485 发布:2025-07-05 14:38:28 浏览:310
php用的软件 发布:2025-07-05 14:06:22 浏览:760
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:437
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:734
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:249
java的开发流程 发布:2025-07-05 12:45:11 浏览:696
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:288
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:838