Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中动态获取数组值_Php - Fatal编程技术网

如何在php中动态获取数组值

如何在php中动态获取数组值,php,Php,提前感谢大家,实际上我有一个带有“BUSINESS\u NAME”的数组,其中有食品和杂货以及非食品,所以我想用数组值将[series\u NAME]=>“食品和杂货”和[series\u NAME]=>“非食品”分开。 所以我的数组是 <?php $arrFirst = Array ( "0" => Array ( "BUSINESS_NAME" => "FOOD AND GROCERY", "Divi

提前感谢大家,实际上我有一个带有“BUSINESS\u NAME”的数组,其中有食品和杂货以及非食品,所以我想用数组值将
[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"];
    }
}