İlki yanı sıra dizideki tüm elemanları olsun ..?

3 Cevap php

Bir dizideki ilk elemanın ama tüm alma belirtmek için bir yolu var mı? Ben genellikle benim diziler döngü foreach () kullanın.

array (1,2,3,4,5) demek, ben sadece 1 atlamak için 2, 3, 4, 5 ve göstermek isterim.

3 Cevap

Bu sorunu yaklaşırken birden çok yolu vardır.

İlk çözüm ilk elemanını gösterir ve foreach devam etmek için bir bayrak boolean kullanmak için

$firstElement = true;

foreach($array as $key => $val) {
  if($firstElement) {
    $firstElement = false;
  } else {
    echo "$key => $val\n";
  }
}

0 tuşu olup olmadığını öğeleri doğal sayısal endeksli iseniz, Boole bayrağı gerekmez, sadece kontrol edebilirsiniz.

foreach($array as $key => $val) {
  if($key === 0) continue;      

  echo "$key => $val\n";
}


İkinci yol zaten değilse doğal sayısal endeksli diziye yol hile olduğunu. I array_keys() tuşları ve döngü bu bir doğal sayısal indisli bir dizi almak için kullanacağız.

$keys = array_keys($array);

foreach($keys as $index => $key) {
  if($index === 0) continue;   

  $val = $array[$key];
  echo "$key => $val\n";
}


Üçüncü yol kullanarak ilk öğeyi atlamak ve daha sonra bir döngü içinde devam dizi iç işaretçi kullanmak için reset() , next() , list() {[(3)] } . Performance and resource-wise, this is the best option. Maintainability suffers greatly though.

reset($array); // Reset pointer to 0
next($array);  // Advance pointer to 1

while (list($key, $val) = each($array)) {
  echo "$key => $val\n";
}


Eğer dizi yapabilirsiniz array_shift() bunun ilk elemanı kaybetme sakıncası yoksa.

array_shift($array);

foreach($array as $key => $val) {
  echo "$key => $val\n";
}


Bu Ayrıca, array_slice() the array. I'm also using count() in order to be able to set the preserve_keys parameter to true.

$sliced = array_slice($array, 1, count($array)-1, true);

foreach($sliced as $key => $val) {
  echo "$key => $val\n";
}

array_shift ()

http://us2.php.net/manual/en/function.array-shift.php

Sitede kullanılan örnek:

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

Yukarıdaki örneğin çıktısı:

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

** Diziye işaretçi vardiyadan sonra reset (yeni değer) olduğunu unutmayın

Biz mevcut dizi-manipülasyon işlevlerinin büyük bir anlaşma var gibi Eh, bunun için pek çok yolu olabilir. Ancak ben bunun için aşağıdaki yöntemi kullanın:

$orig_array = array(1, 2, 3, 4 ,5);
array_shift($orig_array);
print_r($orig_array);