php从数组中的相同键获取两个值

时间:2017-03-11 00:00:51

标签: php arrays

我希望使用相同的键保留两个值,但重命名另一个。

我尝试array_merge(),但它只保留最后一个值。

这是数组的样子

[0] => Array
        (
            [process] => A
            [start] => 0
        )

[1] => Array
        (
            [process] => A
            [end] => 1
        )

[2] => Array
        (
            [process] => A
            [start] => 9
        )

[3] => Array
        (
            [process] => A
            [end] => 14
        )

我只想保留密钥end的第一个值,但保留start的两个值。使它像:

Array
            (
                [process] => A
                [start] => 0
                [start2] => 9
                [end] => 1
            )

2 个答案:

答案 0 :(得分:0)

以下是您在PHP中的表现方式。它相对简单,但是我需要手动添加许多检查才能使其按照您的意愿运行。

<?php

$array = Array(Array
        (
            "process" => "A",
            "start" => 0
        ),Array
        (
            "process" => "A",
            "end" => 1
        ),Array
        (
            "process" => "A",
            "start" => 9
        ),Array
        (
            "process" => "A",
            "end" => 14
        ));

$returnValue = Array();
$returnValue["process"] = $array[0]["process"]; 
$flagFirstEnd = false;
$startI = 1;
foreach ($array as $key => $value) {
    if (!$flagFirstEnd && isset($value["end"])) {
        $flagFirstEnd = true;
        $returnValue["end"] = $value["end"];
    }
    if (isset($value["start"])) {
        if ($startI == 1) {
            $returnValue["start"] = $value["start"];
        } else {
            $returnValue["start" . $startI] = $value["start"];
        }
        $startI++;
    }
}
print_r($returnValue);
?>

答案 1 :(得分:0)

Mabye函数func checkMusicStatus() { let status = UserDefaults().string(forKey: "switch") if status == "Off"{ if (self.globalVars.audioPlayer?.isPlaying != nil){ self.globalVars.audioPlayer?.stop() } } else { self.globalVars.playMusic() } } 会帮助你。

它不是你期望的结果,而是得到像

这样的结果
array_merge_recursive

请查看the documenation以获取更多信息。