• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 217
  • Last Modified:

How can I remove a element from an array in PHP

Suppose I have an array in PHP as shown below
a[0] = "0";
a[1] = "1";
a[2] = "2";

How can I remove the first element in an array and then all the rest of the elements will shift their position to the left.
i.e. a[0] = "1";
a[1] = "2";

Thanks!
0
mawingho
Asked:
mawingho
  • 8
  • 6
  • 4
  • +2
1 Solution
 
afzzCommented:
see the following function

http://in2.php.net/array_shift
0
 
mawinghoAuthor Commented:
How about the element not the first one?
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
this should do
unset(a[0]);

Open in new window

0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
afzzCommented:

$a = array("0","1","2");
$firstelement = array_shift($a);
print_r($a);
//Now array is $a[0]="1", $a[1] ="2"

Open in new window

0
 
afzzCommented:
0
 
mawinghoAuthor Commented:
unset is doesn't work
0
 
afzzCommented:
array_splice($a, 0); //will remove the first element
array_splice($a, 1);//Will remove the second and so on..
0
 
mawinghoAuthor Commented:
I want to remove just ONE element
0
 
mawinghoAuthor Commented:
any function can help me to remove JUST any ONE element from an array.
0
 
hernst42Commented:
array_hist does excatly that what you posted in your example. If it's not working please give a new, correct example.
0
 
mawinghoAuthor Commented:
is this a valid function =.=''
0
 
afzzCommented:
function remove_element($array,$element){
array_splice($array,$element);
return $array;
}
//This funtion will remove the element you want from your array
$a = remove_element($a,0);
0
 
mawinghoAuthor Commented:
If I have an array

a, b, c, d, e, f, g

now I remove c
the function SHOULD give me back

a,b,d,e,f,g
0
 
hernst42Commented:
ok try this:



function removeElement($arr, $element) {
   unset($arr[array_search($element, $arr)]);
   return array_values($arr);
}
 
$a = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
print_r(removeElement($a, 'c'));

Open in new window

0
 
Ali KayahanFull Stack DeveloperCommented:
Hi mawingho: array_splice() function is what you need.. its usage is ;
array_splice(Your array,starting index,count of elements that you want to remove) ;
Your array = $a ;
starting index = 1 ;(Will start remove from index 1)
count of elements = 1 (to remove 1 element) ;
    Also array_shift(Your Array) will remove the first element in your array.
After applied all,to shift array one left you may use sort() ;
sort(your array) ;
0
 
afzzCommented:

function remove_element($a, $element) {
return array_splice($a,array_search($element, $a));
}
$a = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
print_r(remove_element($a, 'c'));

Open in new window

0
 
hernst42Commented:
afzz that code does not work, its missing a,b but c and the rest is still in there, haven't you tried it?
0
 
afzzCommented:
ok try this it should work
function remove_element($a, $element) {
return array_splice($a,array_search($element, $a),1);
}
$a = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
print_r(remove_element($a, 'c'));

Open in new window

0
 
hernst42Commented:
@afzz
that does not work neither result is only c. Is it so hard to test the output of the code before posting worng solutuions, so it works as the asker expects.
0
 
afzzCommented:
sorry I did not get your question right. Try the following I have checked it works.
<?
function remove_element($a, $element) {
$tmp = array_splice($a,array_search($element, $a),1);
sort($a);
return $a;
}
$a = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
print_r(remove_element($a, 'c'));
?>

Open in new window

0

Featured Post

Become an Android App Developer

Ready to kick start your career in 2018? Learn how to build an Android app in January’s Course of the Month and open the door to new opportunities.

  • 8
  • 6
  • 4
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now