PHP一个二维数组的问题

whisperer 2013-02-20 10:48:14
我有一个二维数组,想通过一个元素goods_id的值得到对应的其他元素的值
数组如下,知道goods_id = 123,如何得到goods_name,goods_price。。。。
最简单的方法是?


$goods = array(
0 => array('goods_id' => 123, //goods_id
'goods_name' => 测试商品, //商品名称
'goods_price' => '12.10', //商品价格
'max_number' => '5', //限购数量
'thumb_url' => 'http://.....' //缩略图
),
1 => array('goods_id' => 124,
'goods_name' => 测试商品2,
'goods_price' => '12.10',
'max_number' => '',
'thumb_url' => 'http://.....'
),
2 => array('goods_id' => 125,
'goods_name' => 测试商品3,
'goods_price' => '12.10',
'max_number' => '',
'thumb_url' => 'http://.....'
)
);
...全文
415 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-02-21
  • 打赏
  • 举报
回复
foreach($goods as $v) $res[$v['goods_id']] = $v; $goods = $res;
  • 打赏
  • 举报
回复

	function get_goods($goods,$a){	
		foreach($goods as $value){
			if(is_array($value)){
				foreach($value as $key=>$value1){
					if($value['goods_id']==$a){
						$result1[]=$key;
						$result2[]=$value1;
					}
				}
			}
		}
		$b=array_combine($result1,$result2);
		return array_slice($b,1);
	}
	$c=get_goods($goods,125);//$a根据你需求填写,可以是123也可以是124或125
	print_r($c);
  • 打赏
  • 举报
回复
[code=php]
	function get_goods($goods,$a){	
		foreach($goods as $value){
			if(is_array($value)){
				foreach($value as $key=>$value1){
					if($value['goods_id']==$a){
						$result1[]=$key;
						$result2[]=$value1;
					}
				}
			}
		}
		$b=array_combine($result1,$result2);
		return array_slice($b,1);
	}
	$c=get_goods($goods,125);//$a根据你需求填写,可以是123也可以是124或125
	print_r($c);
[/code]
whisperer 2013-02-21
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
变形数组为PHP code?1234567891011121314151617181920$goods = array( 123 => array('goods_id' => 123, //goods_id 'goods_name' => 测试商品, //商品名称 'goods……
我初衷也是这样,问题是怎么变形啊?
whisperer 2013-02-21
  • 打赏
  • 举报
回复
引用 3 楼 jordan102 的回复:
PHP code?12345678910function foo($v) {if ($v['goods_id']===123) { return true; }return false;} print_r(array_filter($goods,"foo"));
这个也不错,用array_map更好吧? 可以传多个参数,goods_id也可以传进来了

function foo($v1,$v2) 
{
if ($v1['goods_id']===$v2)
    {
    return true;
    }
return false;
}
$goods_id = 123; 
print_r(array_map("foo",$goods,$goods_id));
xuzuning 2013-02-21
  • 打赏
  • 举报
回复
变形数组为
$goods = array(
            123 => array('goods_id'    => 123, //goods_id
                'goods_name'  => 测试商品,    //商品名称
                'goods_price' => '12.10',       //商品价格
                'max_number'  => '5',           //限购数量
                'thumb_url'   => 'http://.....'  //缩略图
            ),
            124 => array('goods_id'    => 124,
                'goods_name'  => 测试商品2,
                'goods_price' => '12.10',
                'max_number'  => '',
                'thumb_url'   => 'http://.....'
            ),
            125 => array('goods_id'    => 125,
                'goods_name'  => 测试商品3,
                'goods_price' => '12.10',
                'max_number'  => '',
                'thumb_url'   => 'http://.....'
            )
        );
直接 print_r($goods[123]);
一起混吧 2013-02-21
  • 打赏
  • 举报
回复
function foo($v) 
{
if ($v['goods_id']===123)
	{
	return true;
	}
return false;
}

print_r(array_filter($goods,"foo"));
whisperer 2013-02-21
  • 打赏
  • 举报
回复
引用 1 楼 stch12132324 的回复:
$result = array(); foreach($goods as $vals){ if($vals['goods_id']==123){ $result[] = $vals; break; } }
嗯,是很简单 不知道还有其他方法么
stch12132324 2013-02-20
  • 打赏
  • 举报
回复
$result = array(); foreach($goods as $vals){ if($vals['goods_id']==123){ $result[] = $vals; break; } }

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧