簡體   English   中英

從特定的偏移量開始刪除所有數組值

[英]Deleting all array values from a specific offset and on

我有一個具有120〜左右偏移量的數組,我想知道如何在包含指定字符串的特定偏移量后刪除所述數組的所有值。 例如:偏移[68]具有字符串'Overflow'。 我想刪除所有內容,包括68及以后的內容,並重建數組(其當前排序完好無損)。

我試圖弄亂slice和splice,但是我似乎無法讓它返回正確的值。 我還考慮過只獲取包含'Overflow'的偏移量,然后通過for語句循環它,直到$i = count($array); 但這似乎比應有的強度要大。

這是最好的方法嗎? 還是有一些功能我只是用錯了?

使用array_slice()

$desired = array_slice($input, 0, $upTo);

首先,您需要找到數組中出現的字符串,如果找到了值,則從該點修剪數組;

function removeString($string, $array)
{
  # search for '$string' in the array
  $found = array_search($string, $array);

  if ($found === false) return $array; # found nothing

  # return sliced array
  return array_slice($array, $found);
}

而且,如果需要使數組順序排列(以避免由於缺少偏移而產生意外情況),則始終可以在第一行中添加$array = array_values($array) 這將以偏移量為0、1、2、3、4 ...的新數組重新組織數組值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM