请问在PHP中的任何位置上插入数组中的新项

在PHP中的任何位置上插入数组中的新项

如何将新项插入到任何位置的数组中,例如在数组的中间?


偶然的你
浏览 450回答 3
3回答

杨魅力

你可能会发现这有点直观。它只需要调用一个函数array_splice:$original = array( 'a', 'b', 'c', 'd', 'e' );$inserted = array( 'x' );  // not necessarily an array, see manual quotearray_splice( $original, 3, 0, $inserted );   // splice in at position 3// $original is now a b c x d e如果替换只是一个元素,则不需要在其周围放置Array(),除非该元素是数组本身、对象或NULL。

FFIVE

没有任何本地PHP函数(据我所知)能够完全满足您的要求。我写了两种我认为适合的方法:function insertBefore($input, $index, $element) {     if (!array_key_exists($index, $input)) {         throw new Exception("Index not found");     }     $tmpArray = array();     $originalIndex = 0;     foreach ($input as $key => $value) {         if ($key === $index) {             $tmpArray[] = $element;             break;         }         $tmpArray[$key] = $value;         $originalIndex++;     }     array_splice($input, 0, $originalIndex, $tmpArray);     return $input;}function insertAfter($input, $index, $element) {     if (!array_key_exists($index, $input)) {         throw new Exception("Index not found");     }     $tmpArray = array();     $originalIndex = 0;     foreach ($input as $key => $value) {         $tmpArray[$key] = $value;         $originalIndex++;         if ($key === $index) {             $tmpArray[] = $element;             break;         }     }     array_splice($input, 0, $originalIndex, $tmpArray);     return $input;}虽然速度更快,而且内存效率可能更高,但这只适用于不需要维护数组键的情况。如果您确实需要维护密钥,下面的内容将更合适;function insertBefore($input, $index, $newKey, $element) {     if (!array_key_exists($index, $input)) {         throw new Exception("Index not found");     }     $tmpArray = array();     foreach ($input as $key => $value) {         if ($key === $index) {             $tmpArray[$newKey] = $element;         }         $tmpArray[$key] = $value;     }     return $input;}function insertAfter($input, $index, $newKey, $element) {     if (!array_key_exists($index, $input)) {         throw new Exception("Index not found");     }     $tmpArray = array();     foreach ($input as $key => $value) {         $tmpArray[$key] = $value;         if ($key === $index) {             $tmpArray[$newKey] = $element;         }     }     return $tmpArray;}
打开App,查看更多内容
随时随地看视频慕课网APP