2010-04-12 20 views

Trả lời

4

Về cơ bản: Chỉ cần thực hiện.

Các manual có các ví dụ tốt như thế này:

$input = array("red", "green", "blue", "yellow"); 
array_splice($input, 2); 
// $input is now array("red", "green") 

nếu có điều gì không làm việc ra cho bạn, hãy thêm chi tiết cho câu hỏi của bạn.

+0

cách xóa "màu xanh"? – lovespring

+0

@lovespring bạn có nghĩa là làm thế nào để tìm vị trí chỉ mục của "màu xanh", đúng không? –

+0

không, ý tôi là, xóa "màu xanh", chỉ cần xóa một mục ở giữa mảng. – lovespring

1

Bắt đầu với (id là mục bạn muốn xóa):

$input = array("a", "b", "c", "d", "e"); 
$id=2; 

mảng nối:

$a1 = array_slice($input, $id); 
print_r($a1); 

Array 
(
    [0] => c 
    [1] => d 
    [2] => e 
) 

mảng miếng:

array_splice($input, $id-1); 
print_r($input); 

Array 
(
    [0] => a 
) 

Kết hợp các mối nối và lát sẽ cung cấp cho bạn một mảng giống với mảng đầu vào nhưng không có mục cụ thể.

Bạn có thể làm điều này chỉ bằng một dòng nhưng tôi sẽ để nó như một bài tập cho người đọc.

1

Có phải là array_splice không? Tôi nghĩ rằng cách thích hợp nhất (có thể tùy thuộc vào kích thước mảng, tôi không biết như thế nào array_search quy mô) là sử dụng array_search() với unset():

$array = array('foo', 'bar' => 'baz', 'bla', 5 => 'blubb'); 

// want to delete 'baz' 
if(($key = array_search('baz', $array)) !== FALSE) { 
    unset($array[$key]); 
} 
+0

Tôi biết cách này, trước tiên không được đặt, sau đó sử dụng mảng_values. cảm ơn . – lovespring

3

làm thế nào để chỉ cần xóa "xanh"?

Ở đây bạn đi:

$input = array("red", "green", "blue", "yellow"); 
array_splice($input, array_search('blue', $input), 1); 
7

Trên thực tế. Tôi nghĩ ra hai cách để làm điều đó. Nó phụ thuộc vào cách bạn sẽ xử lý với vấn đề chỉ mục.

Nếu bạn muốn giữ nguyên chỉ mục sau khi xóa các phần tử nhất định khỏi một mảng, bạn cần phải bỏ đặt().

<?php 
    $array = array("Tom","Jack","Rick","Alex"); //the original array 

    /*Here, I am gonna delete "Rick" only but remain the indices for the rest */ 
    unset($array[2]); 
    print_r($array); 
?> 

thỏa ra sẽ là:

Array ([0] => Tom [1] => Jack [3] => Alex) //The indices do not change! 

Tuy nhiên, nếu bạn cần một mảng mới mà không giữ các chỉ số trước, sau đó sử dụng array_splice():

<?php 
    $array = array("Tom","Jack","Rick","Alex"); //the original array 
    /*Here,we delete "Rick" but change indices at the same time*/ 
    array_splice($array,2,1); // use array_splice() 

    print_r($array); 
?> 

Kết quả này thời gian sẽ là:

Array ([0] => Tom [1] => Jack [2] => Alex) 

Hy vọng, điều này sẽ giúp ích cho bạn!

+0

Điều này sẽ được chấp nhận – Kenedy

Các vấn đề liên quan