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!
mawinghoAsked:
Who is Participating?
 
afzzConnect With a Mentor Commented:
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
 
afzzCommented:
see the following function

http://in2.php.net/array_shift
0
 
mawinghoAuthor Commented:
How about the element not the first one?
0
Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
this should do
unset(a[0]);

Open in new window

0
 
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.