2017-06-27 4 views
1

Aufschneiden Ich habe eine Array Art von 'months' => 'txt for ppl'PHP neues Array erstellen, indem

$timeArr = [ 
      '1' => '1 месяц', 
      '3' => '3 месяца', 
      '6' => '6 месяцев', 
      '9' => '9 месяцев', 
      '12' => '1 год', 
      '18' => '1,5 года', 
      '24' => '2 года', 
      '36' => '3 года', 
      '48' => '4 года', 
      '60' => '5 лет', 
      '72' => '6 лет', 
      '84' => '7 лет', 
      '120' => '10 лет', 
      '180' => '15 лет', 
      '240' => '20 лет', 
      '300' => '25 лет', 
      '360' => '30 лет', 
     ]; 

Meine Idee ist, eine Funktion macht nur Zeit zurück ich will. Beispiel: Funktionsperiode ($ from, $ to): period (240, 360) gibt das Array der Schlüssel => Werte vom Schlüssel '240' zum Schlüssel '360' zurück. Aber ich habe keine Ahnung, wie man es ohne Schleifen macht.

+0

Was ist deine Frage? – smzapp

+0

in Ihrem Array diese Tasten sind numerische Schlüssel oder Zeichenfolge? und es ist Ordnung oder Unordnung? – JYoThI

Antwort

0

Probieren Sie den folgenden Code aus, um das Array nach Schlüssel zu erhalten.

Es gibt den Bereichswert und seinen Schlüssel aus $timeArr zurück.

PHP

<?php 
function period($from,$to){ 
    $timeArr = [ 
     '1' => '1 месяц', 
     '3' => '3 месяца', 
     '6' => '6 месяцев', 
     '9' => '9 месяцев', 
     '12' => '1 год', 
     '18' => '1,5 года', 
     '24' => '2 года', 
     '36' => '3 года', 
     '48' => '4 года', 
     '60' => '5 лет', 
     '72' => '6 лет', 
     '84' => '7 лет', 
     '120' => '10 лет', 
     '180' => '15 лет', 
     '240' => '20 лет', 
     '300' => '25 лет', 
     '360' => '30 лет', 
    ]; 
    $newArr = array(); 
    $range = range($from,$to); 
    $newArr = array_intersect_key($timeArr, array_flip($range)); 
    return $newArr; 
} 
?> 

Nutzungs

<?php 
    $newArray = period(240,360); 
    echo "<pre>"; 
    print_r($newArray); 
?> 

Ausgabe

Array 
(
    [240] => 20 лет 
    [300] => 25 лет 
    [360] => 30 лет 
) 
1

Bitte versuchen Sie es unter:

function period($array, $keys) 
{ 
    return array_intersect_key($array, array_flip($keys)); 
} 

$keys = array('240', '300'); 
$results = period($timeArr, $keys); 
print_r($results); 
1

Sie array_slice wie diese verwenden können, und Sie können die live demo here überprüfen.

$indexes = array_flip(array_keys($timeArr)); 
$results = array_slice($timeArr, $indexes[240], $indexes[360]); 
Verwandte Themen