请教:PHP中,如何获取提交的二维数组中某几列键值不为空的结果

php中文网
发布: 2016-06-23 13:52:51
原创
867人浏览过

所提交的结果如下:

Array(    [name] => Array        (            [0] => 地砖            [1] =>             [2] => 空心砖            [3] => 地砖        )    [cunit] => Array        (            [0] => 块            [1] =>             [2] => 块            [3] => 块        )    [unitprice] => Array        (            [0] => 35            [1] =>             [2] => 3.5            [3] => 35        )    [pronum] => Array        (            [0] => 2            [1] =>             [2] => 2            [3] =>         )    [summoney] => Array        (            [0] =>             [1] =>             [2] =>             [3] =>         ))
登录后复制


			$data=$_POST['sale'];			//print_r($data);			foreach ($data as $k1 => $v1) {				foreach ($v1 as $k2 => $v2) {					$new_data[$k2][$k1] = $v2;					$new_data[$k2]['username']='admin';				}			}
登录后复制

我想得到的最终结果是。name中数值不为空,且pronum数值不为空的结果。试了下if( $v2!=' ) 不对。特请教各位。谢谢了

百度文心百中
百度文心百中

百度大模型语义搜索体验中心

百度文心百中 22
查看详情 百度文心百中

回复讨论(解决方案)

$arr=array(    'name' => array        (            0 =>'地砖',            1 =>'',            2 => '空心砖',            3 => '地砖',        ),    'cunit' => array        (            0 => '块',            1 => '',            2 => '块',            3 => '块'        ),     'unitprice' => array        (            0 => 35,            1 => '',            2 => 3.5,            3 => 35        ),   'pronum' => array       (            0 => 2,            1 => '',            2 => 2,            3 =>''        ),   'summoney' => array        (            0 =>'',             1 =>'',             2 =>'',             3 =>''         )    );$new_data=array();foreach($arr as $k=>$v){    if($k=='name' || $k=='pronum'){        foreach($v as $newk=>$newv){            if($newv!=''){                $new_data[$k][]=$newv;            }                    }    }}print_r($new_data);[code=php]Array(    [name] => Array        (            [0] => 地砖            [1] => 空心砖            [2] => 地砖        )    [pronum] => Array        (            [0] => 2            [1] => 2        ))
登录后复制




[/code]

其实处理成这样才便于后续处理

Array(    [0] => Array        (            [name] => 地砖            [cunit] => 块            [unitprice] => 35            [pronum] => 2            [summoney] =>         )    [2] => Array        (            [name] => 空心砖            [cunit] => 块            [unitprice] => 3.5            [pronum] => 2            [summoney] =>         ))
登录后复制
$k = array_keys($data);foreach(call_user_func_array('array_map', array_merge(array(null), $data)) as $i=>$r) {  $r = array_combine($k, $r);  if($r['name'] && $r['pronum']) $res[$i] = $r;}
登录后复制

谢谢xuzuning版主。这样处理周全点,同时谢谢luo19880415

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号