【问题标题】:How to get the index of one array and make it value to another如何获取一个数组的索引并使其对另一个数组有价值
【发布时间】:2018-03-03 19:31:48
【问题描述】:
$Towns = ['Plovdiv', '40', 'Pernik', '20', 'Vidin', '8', 'Sliven', '44', 'Plovdiv', '1', 'Vidin', '7', 'Chirpan', '0'];    
$emptyTown = [];    
$emptyIncome = [];    
$calculated = [];    
$rowCount = 0;    

foreach ($Towns as $town){    
    $rowCount++;
    $rowCount2++;
    if($rowCount % 2){
        $emptyTown[$town] = '';
    }else{   
        $emptyIncome[$town] = ''; 
    }
}

这就是我设法达到的程度。我的想法是获取每个城镇的名称并将其作为键保存在数组中,每个数字都是城镇收入。所以我需要类似的东西

Plovdiv => 40
Pernik => 20
Vidin => 8
Sliven => 44
Plovdiv => 1
Vidin => 7
Chirpan => 0

我不知道我无法向自己解释如何做到这一点。我想出的最好的主意是将它们保存在两个数组中,然后以某种方式合并它们。 你们能给我解释一下你们可以做到的一些方法吗?

【问题讨论】:

  • 您在 Towns 数组中多次使用相同的名称。您不能将其多次存储在具有相同键的数组中。否则,所有答案都是正确的

标签: php logic associative-array array-merge array-key


【解决方案1】:

使用以 2 为增量的 for 循环。

$TownIncomes = [];
for ($i = 0; $i < count($Towns); $i += 2) {
    $TownIncomes[$Towns[$i]] = $Towns[$i+1];
}

【讨论】:

    【解决方案2】:

    使用foreach检查$key%2是否等于0

    foreach($Towns as $key => $value){
    
        if($key%2 == 0){
    
        $new[$value] = $Towns[$key + 1];    
    
        }
    

    }

    【讨论】:

      【解决方案3】:
      $data = ['Plovdiv', '40', 'Pernik', '20', 'Vidin', '8', 'Sliven', '44', 
      'Plovdiv', '1', 'Vidin', '7', 'Chirpan', '0'];
      $towns = [];
      
      $counter = 0;
      foreach($data as $index => $value) {
          if($counter == 0){
              $towns[$value] = $data[$index + 1];
              $counter++;
          }
          $counter = 0;
      }
      
      print_r($towns); //Array ( [Plovdiv] => 1 [Pernik] => 20 [Vidin] => 7 
      [Sliven] => 44 [Chirpan] => 0 )  
      

      我已经稍微重构了它......但是,索引不能具有相同的值,因此重复的 Vidin 和 Plovdiv 会覆盖初始值。

      试试这个,你应该能够让它工作......

      $towns[$value][] = $data[$index + 1]; <---- doing something like that
      

      如果城镇有多种收入,则允许您向城镇添加多个值,但需要对代码进行一些重构才能工作。

      您的数据是否采用该格式且无法更改? IE。 “城镇”、“价值”、“城镇”、“价值”……?

      【讨论】:

        猜你喜欢
        • 2018-03-28
        • 1970-01-01
        • 2020-09-28
        • 2021-11-24
        • 1970-01-01
        • 1970-01-01
        • 2021-06-24
        • 2016-04-14
        • 1970-01-01
        相关资源
        最近更新 更多