Php 使用键从foreach循环创建数组
我找不到我正在寻找的确切解决方案 我正在尝试从保留密钥的foreach循环创建一个数组。以下是我到目前为止的代码,但它只保留数组中的最后一个值:Php 使用键从foreach循环创建数组,php,arrays,foreach,Php,Arrays,Foreach,我找不到我正在寻找的确切解决方案 我正在尝试从保留密钥的foreach循环创建一个数组。以下是我到目前为止的代码,但它只保留数组中的最后一个值: foreach($links as $link) { //runs scrape_amazon function for each of the links $ret = scrape_amazon($link); foreach($ret as $key => $value) { //echo $key; //e
foreach($links as $link) {
//runs scrape_amazon function for each of the links
$ret = scrape_amazon($link);
foreach($ret as $key => $value) {
//echo $key;
//echo $value;
$final_results[$key] = $value;
}
}
有人能帮我找到一个解决方案来保存所有的值和键吗
提前谢谢 如果需要一组just键,则需要执行此操作
$ret_keys = array_keys($ret);
你为什么这么做?它看起来像:
$final_results = $ret;
根据您最近的评论,这应该可以解决您的问题:
$ret = array();
foreach($links as $link) {
$ret[] = scrape_amazon($link);
}
每次调用
scrape_amazon()
时,它都会将返回的数组添加到$ret
中,使其成为一个数组。您要的是一个键数组吗?根据您使用foreach循环的方式,在我看来,您的初始数组必须是$ret[key]格式=值?您的代码应该以$final\u results
作为$ret
的精确副本结束(假设它一开始是空的)。您希望发生什么?不,我有一个函数,它收集数据并将其放入$ret中,但每次运行时都会覆盖以前的值。我试图保留键和值,例如:[ASIN]=>123445[Name]=>Name[Retail]=>14.99。那么问题不在于您提供的代码,而在于将值分配给$ret
时。正如Jon所说,上面只是创建了一个精确的$ret
副本,并将其放入$final\u results
。我知道$final\u results返回的结果与$ret相同。这就是问题所在。我曾想过使用array_push,但无法将每次$ret的结果构建到单个$final_结果数组中。唯一的解决方案是:$final_results[]=$ret;或$final_results[$ret['ASIN']]=$ret;非常感谢。我知道现在的问题是它必须是多维的,因为有3个键。谢谢你的帮助。这就产生了一个多维空间。谢谢@注册-看到你是这个网站的新手,我只是想提醒你接受答案。谢谢!:)
// Create an empty array first
$final_results = array();
foreach($links as $link) {
//runs scrape_amazon function for each of the links
$ret = scrape_amazon($link);
$final_results[] = $ret; // DONE :)
}