Solved

How can I remove a element from an array in PHP

Posted on 2008-06-13
20
207 Views
Last Modified: 2013-11-19
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
Comment
Question by:mawingho
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 8
  • 6
  • 4
  • +2
20 Comments
 
LVL 4

Expert Comment

by:afzz
ID: 21776604
see the following function

http://in2.php.net/array_shift
0
 

Author Comment

by:mawingho
ID: 21776610
How about the element not the first one?
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 21776616
this should do
unset(a[0]);

Open in new window

0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 4

Expert Comment

by:afzz
ID: 21776617

$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
 
LVL 4

Expert Comment

by:afzz
ID: 21776629
0
 

Author Comment

by:mawingho
ID: 21776631
unset is doesn't work
0
 
LVL 4

Expert Comment

by:afzz
ID: 21776667
array_splice($a, 0); //will remove the first element
array_splice($a, 1);//Will remove the second and so on..
0
 

Author Comment

by:mawingho
ID: 21776674
I want to remove just ONE element
0
 

Author Comment

by:mawingho
ID: 21776677
any function can help me to remove JUST any ONE element from an array.
0
 
LVL 48

Expert Comment

by:hernst42
ID: 21776693
array_hist does excatly that what you posted in your example. If it's not working please give a new, correct example.
0
 

Author Comment

by:mawingho
ID: 21776701
is this a valid function =.=''
0
 
LVL 4

Expert Comment

by:afzz
ID: 21776729
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
 

Author Comment

by:mawingho
ID: 21776749
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
 
LVL 48

Expert Comment

by:hernst42
ID: 21776769
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
 
LVL 14

Expert Comment

by:ali_kayahan
ID: 21776786
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
 
LVL 4

Expert Comment

by:afzz
ID: 21777132

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
 
LVL 48

Expert Comment

by:hernst42
ID: 21777153
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
 
LVL 4

Expert Comment

by:afzz
ID: 21777185
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
 
LVL 48

Expert Comment

by:hernst42
ID: 21777207
@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
 
LVL 4

Accepted Solution

by:
afzz earned 500 total points
ID: 21777238
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

SharePoint Admin?

Enable Your Employees To Focus On The Core With Intuitive Onscreen Guidance That is With You At The Moment of Need.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
In this tutorial viewers will learn how to embed an audio file in a webpage using HTML5. Ensure your DOCTYPE declaration is set to HTML5: : The declaration should display (CODE) HTML5 is supported by the most recent versions of all major browsers…
The viewer will receive an overview of the basics of CSS showing inline styles. In the head tags set up your style tags: (CODE) Reference the nav tag and set your properties.: (CODE) Set the reference for the UL element and styles for it to ensu…

737 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question