2017-09-22 7 views
1
$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] = ''; 
    } 
} 

C'est ce que j'ai réussi à obtenir. Mon idée est d'obtenir le nom de chaque ville et de l'enregistrer en tant que clé et chaque numéro est un revenu de la ville. Donc j'ai besoin de quelque chose commeComment obtenir l'index d'un tableau et le valoriser à un autre

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

Je n'ai aucune idée Je ne peux pas expliquer la façon de le faire à moi-même. La meilleure idée que j'ai trouvée est de les sauvegarder dans deux tableaux et de les fusionner d'une manière ou d'une autre. Pouvez-vous m'expliquer comment vous pouvez le faire?

+1

Vous avez reçu le même nom plusieurs fois dans votre tableau Villes. Ce que vous ne pouvez pas stocker dans un tableau avec la même clé plusieurs fois. sinon, toutes les réponses sont correctes –

Répondre

3

Utilisez une boucle for par incréments que 2.

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

utilisant foreach vérifier si $key%2 est égal à 0

foreach($Towns as $key => $value){ 

    if($key%2 == 0){ 

    $new[$value] = $Towns[$key + 1];  

    } 

}

1
$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) 

J'ai refactor ed il légèrement ... cependant, les index ne peuvent pas avoir la même valeur, donc le Vidin dupliqué et Plovdiv écraser les initiales.

avoir un jeu avec cela et vous devriez être en mesure de le faire fonctionner ...

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

vous permettra d'ajouter des multple valeurs à la ville si elles ont des revenus multiples, mais aura besoin de refactoring de le code pour travailler.

Vos données sont-elles dans ce format et ne peuvent pas être modifiées? c'est à dire. «ville», «valeur», «ville», «valeur» ...?