首頁 > 後端開發 > php教程 > php Array数组转换问题

php Array数组转换问题

WBOY
發布: 2016-06-23 14:06:13
原創
1116 人瀏覽過

如何把

Array(    [strwarenum] => Array        (            [0] => 1            [1] => 1        )    [strwareid] => Array        (            [0] => 80            [1] => 79        ))
登入後複製


转换为

Array(    [config_id] =>     [strwareid] => ,78,80    [strwarenum] => ,1,1    [config_name] =>     [config_desc] =>     [diycat_id] => )
登入後複製
登入後複製

并可以单独调用呢


回复讨论(解决方案)

设你原来的数组为$a,建一个你需要包含所有key的空数组$b(你的例子有些key在$a中没有,所以要另建)
不知道你的 78这个值从何而来,暂时当你是把79打错了
我懒得写赋值部分了,还要改你的代码,麻烦,自己写吧

foreach($b as $k => $v){    $a[$k][]='';    $v=array_reverse($a[$k]);}var_export($b);
登入後複製

自己测试

非常抱歉,实在不会把

Array(    [strwarenum] => Array        (            [80] => 1            [78] => 1        )    [strwareid] => Array        (            [0] => 80            [1] => 78        )    [config_id] =>     [config_name] =>     [config_desc] =>     [diycat_id] => )
登入後複製

变为
Array(    [config_id] =>     [strwareid] => ,78,80    [strwarenum] => ,1,1    [config_name] =>     [config_desc] =>     [diycat_id] => )
登入後複製
登入後複製

$arr=你的数组;foreach($arr as &$v){     if(is_array($v)) $v=','.join(',',$v);}print_r($arr);
登入後複製

PHP code?12345$arr=你的数组;foreach($arr as &$v){ if(is_array($v)) $v=','.join(',',$v);}print_r($arr);


非常感谢,解决了

	$ar=array("strwarenum"=>array(1,1),"strwareid"=>array(80,79));		function change($ar){		$arr=array();		foreach($ar as $key=>$value){			if($key=="strwareid"){				for($i=count($ar[$key])-1;$i>=0;$i--){					$s=$s.",".$ar[$key][$i];				}			}			if($key=="strwarenum"){				for($i=count($ar[$key])-1;$i>=0;$i--){					$m=$m.",".$ar[$key][$i];				}			}		}		$arr['config_id']='';		$arr['strwareid']=$s;		$arr['strwarenum']=$m;		$arr['config_name']='';		$arr['config_desc']='';		$arr['diycat_id']='';		return $arr;	}	echo "<pre class="brush:php;toolbar:false">";	print_r(change($ar));	echo "
登入後複製
";Array( [config_id] => [strwareid] => ,79,80 [strwarenum] => ,1,1 [config_name] => [config_desc] => [diycat_id] => )

呃,还有连带关系?strwarenum的key和strwareid的值对应么?给两个不同的strwarenum的值看看结果是怎样

另外,你给的数据能不能写成定义形式啊 "strwarenum" => Array...,还要我逐个去改啊?! 

居然结贴了……如果有对应关系,上面的各楼包括我写的那个都不能用

PHP code?123456789101112131415161718192021222324252627282930313233343536    $ar=array("strwarenum"=>array(1,1),"strwareid"=>array(80,79));         function change($ar){        $arr=array(……
其实strwarenum 是数量可以不考虑。对应每个strwareid为1也可以
strwareid是主要要获得的函数

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板