如何在php中动态获取数组值
提前感谢大家,实际上我有一个带有“BUSINESS\u NAME”的数组,其中有食品和杂货以及非食品,所以我想用数组值将如何在php中动态获取数组值,php,Php,提前感谢大家,实际上我有一个带有“BUSINESS\u NAME”的数组,其中有食品和杂货以及非食品,所以我想用数组值将[series\u NAME]=>“食品和杂货”和[series\u NAME]=>“非食品”分开。 所以我的数组是 <?php $arrFirst = Array ( "0" => Array ( "BUSINESS_NAME" => "FOOD AND GROCERY", "Divi
[series\u NAME]=>“食品和杂货”和[series\u NAME]=>“非食品”分开。
所以我的数组是
<?php
$arrFirst = Array
(
"0" => Array
(
"BUSINESS_NAME" => "FOOD AND GROCERY",
"Division_name" => "BAKERY AND CONCEPTS",
"value" => 0.0009477694110518376
),
"1" => Array
(
"BUSINESS_NAME" => "FOOD AND GROCERY",
"Division_name" => "DAIRY AND FROZEN",
"value" => 0.005450625689261974
),
"2" => Array
(
"BUSINESS_NAME" => "FOOD AND GROCERY",
"Division_name" => "FISH AND MEAT",
"value" => 0.000021331155586759062
),
"3" => Array
(
"BUSINESS_NAME" => "FOOD AND GROCERY",
"Division_name" => "FOODS",
"value" => 7.763433792429072
),
"4" => Array
(
"BUSINESS_NAME" => "FOOD AND GROCERY",
"Division_name" => "FMCGFOODS",
"value" => 28.280507791758872
),
"5" => Array
(
"BUSINESS_NAME" => "FOOD AND GROCERY",
"Division_name" => "FRUIT AND VEG",
"value" => 0.00004250371522120021
),
"6" => Array
(
"BUSINESS_NAME" => "FOOD AND GROCERY",
"Division_name" => "LIQUOR AND TOBACCO",
"value" => 0.0001807993856424188
),
"7" => Array
(
"BUSINESS_NAME" => "FOOD AND GROCERY",
"Division_name" => "STAPLES",
"value" => 63.63833077404931
),
"8" => Array
(
"BUSINESS_NAME" => "NONFOOD",
"Division_name" => "APPARELS",
"value" => 0.009254311711678597
),
"9" => Array
(
"BUSINESS_NAME" => "NONFOOD",
"Division_name" => "ELECTRONICS",
"value" => 0.0009884492728213818
),
"10" => Array
(
"BUSINESS_NAME" => "NONFOOD",
"Division_name" => "GENERALMERCHANDISING",
"value" => 0.051390163621477414
),
"11" => Array
(
"BUSINESS_NAME" => "NONFOOD",
"Division_name" => "MAX",
"value" => 0.23221365584864856
),
"12" => Array
(
"BUSINESS_NAME" => "NONFOOD",
"Division_name" => "TEXTILES",
"value" => 0.01723803195136225
)
);
我从谷歌那里得到了一份推荐信
foreach ($arrFirst as $value) {
$businesArr[$value['BUSINESS_NAME']]['series_name'][] = $value['value'];
}
foreach ($businesArr as $key => $value) {
$finalArr['BUSINESS_NAME'][][$key] = $value;
}
但是数组看起来不同尝试查看输出并相应更新。
已更新并与您的输出相匹配(准确)
这样就可以了,除了使用原始数组中的实际
BUSINESS\u NAME
值代替BUSINESS\u NAME
下的数字键外:
foreach($arrFirst as $array) {
$result["BUSINESS_NAME"][$array["BUSINESS_NAME"]]
["series_name"][$array["BUSINESS_NAME"]][] = $array["value"];
}
您的第一个脚本只定义了一个数组,所以我不确定您为什么在第二个脚本中引用$businessArr 您的目标阵列看起来也有点奇怪。我不确定粘贴的输出是否有有效的var_dump输出,但我会尝试
$destArray = array(
"BUSINESS_NAME" => array(
array(
0 => array("series_name" => "FOOD AND GROCERY"),
1 => array("series_name" => "NONFOOD")
)
)
);
foreach($arrFirst as $record) {
if ($record["BUSINESS_NAME"] == "FOOD AND GROCERY") {
$destArray["BUSINESS_NAME"][0][] = $record["value"];
} elseif ($record["BUSINESS_NAME"] == "NONFOOD") {
$destArray["BUSINESS_NAME"][1][] = $record["value"];
}
}
就我个人而言,我不会这样定义第二个数组。我也觉得你原来的帖子在表达你想要达到的目标方面需要一些改进 如果我还有一个系列名称作为系列名称“=>”呢“,他需要相应地更新代码,对吗?请参阅@Abracadver发布的解决方案,这也是动态的,先生。正如我所说,OP需要提供更多关于需要完成的具体操作的详细信息。Abracadver的解决方案非常优雅,但输出有点不正常:喜欢它,但输出上有更多的数组层次结构。结果数组不清楚且无效。
NONFOOD
是series\u name
和值一起的元素,还是保存值的数组?您所做的是正确的,但我需要[BUSINESS\u name]=>数组中的这些数组数据(您可以根据需要进行更新和制作。编写$output['BUSINESS\u name'][],而不仅仅是$output[]在第二个循环中查看结果。相应地更新。没有yaar,我将只得到类似此数组的非食品数组([BUSINESS_NAME]=>array([series_NAME]=>NONFOOD[value]=>array([0]=>0.0092543117116786[1]=>0.00098844927282138[2]=>0.051390163621477[3]=>0.23221365584865[4]=>0.017238031951362])非常感谢。
foreach($arrFirst as $array) {
$result["BUSINESS_NAME"][$array["BUSINESS_NAME"]]
["series_name"][$array["BUSINESS_NAME"]][] = $array["value"];
}
$destArray = array(
"BUSINESS_NAME" => array(
array(
0 => array("series_name" => "FOOD AND GROCERY"),
1 => array("series_name" => "NONFOOD")
)
)
);
foreach($arrFirst as $record) {
if ($record["BUSINESS_NAME"] == "FOOD AND GROCERY") {
$destArray["BUSINESS_NAME"][0][] = $record["value"];
} elseif ($record["BUSINESS_NAME"] == "NONFOOD") {
$destArray["BUSINESS_NAME"][1][] = $record["value"];
}
}