在php中访问多个数组数据时遇到问题
我将数据放在php中的多个数组中,并试图通过键值对逻辑访问它,但没有成功 以下是使用在php中访问多个数组数据时遇到问题,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我将数据放在php中的多个数组中,并试图通过键值对逻辑访问它,但没有成功 以下是使用print\r打印阵列时的输出: Array ( [0] => Array ( [33] => Coca Cola Products ) [1] => Array ( [1] => Agricultural products, Food and Beverages ) ) 我正在思考的代码是: foreach
print\r
打印阵列时的输出:
Array (
[0] => Array (
[33] => Coca Cola Products
)
[1] => Array (
[1] => Agricultural products, Food and Beverages
)
)
我正在思考的代码是:
foreach ($data as $key=>$option)
{
echo $key;
}
所需输出:
33 coca cola products
1 Agricultural products, Food and Beverages
在我的for
-填充数据循环中,我正在执行以下操作:
$data[] = array($loop['category_id'] => $loop['category_name']);
现在希望在填充数组时获取类别id和类别名称
data[] = array($loop['category_id'] => $loop['category_name']);
将每个元素创建为一个数组,这就是为什么最终得到的结果
如果你用
$data[$loop['category_id']] = $loop['category_name'];
您将看到数组是在1个深度级别创建的。使用print\r,您将看到不同之处。这意味着当您使用
foreach
进行迭代时,它将使用用于添加数据的键,并在之后给出值。当您填充数组时
data[] = array($loop['category_id'] => $loop['category_name']);
将每个元素创建为一个数组,这就是为什么最终得到的结果
如果你用
$data[$loop['category_id']] = $loop['category_name'];
您将看到数组是在1个深度级别创建的。使用print\r,您将看到不同之处。这意味着当您使用
foreach
进行迭代时,它将使用您用来添加数据的键,并在之后给出值。您的$data是一个数组数组,您应该这样做,
foreach ($data as $v)
{
echo key($v) . ' ' . current($v) . "\n";
}
您的$data是数组的数组,您应该这样做,
foreach ($data as $v)
{
echo key($v) . ' ' . current($v) . "\n";
}
这可以按如下方式完成
$data = array(array('33'=>"Coca Cola Products"),array("1"=>"Agricultural products, Food and Beverages"));
foreach ($data as $key=>$option)
{
foreach($option as $k=>$v){
echo "\n". $k ." ". $v;
}
}
这可以按如下方式完成
$data = array(array('33'=>"Coca Cola Products"),array("1"=>"Agricultural products, Food and Beverages"));
foreach ($data as $key=>$option)
{
foreach($option as $k=>$v){
echo "\n". $k ." ". $v;
}
}
你想得到什么?@Exprator更新了问题,我猜类别id是唯一的?为什么不这样构建数组:
$data[$loop['category\u id'])=$loop['category\u name']
然后在你的foreach中这样做:echo$key.'.$option;
你想得到什么?@Exprator更新了问题,请检查我猜类别id是唯一的?为什么不改为这样构建数组:$data[$loop['category\u id'])=$loop['category\u name']
只需在您的foreach中执行此操作:echo$key.'.$option;
如果要复制/粘贴我的评论,请确保修复其中的错误。:-)它应该是$data[$loop['category\u id']
而不是$data[$loop[$category\u id'])
(最后一个括号)。我对评论的问题是,他们并不总是解释问题是什么,很抱歉复制-这是咖啡因还没有起作用,而且打字很难:-/并不意味着你做错了什么。只是觉得有点可笑。:-)如果你要复制/粘贴我的评论,请确保你修复了其中的错误。:-)应该是be$data[$loop['category\u id']]
而非$data[$loop['category\u id'])
(最后一个括号)。我对评论的问题是,他们并不总是解释问题是什么,而且很抱歉抄袭-这是咖啡因还没有起作用,而且打字很难:-/并不意味着你做错了什么。只是觉得有点可笑。:-)