Solved

How can I remove a element from an array in PHP

Posted on 2008-06-13
20
198 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
  • 8
  • 6
  • 4
  • +2
20 Comments
 
LVL 4

Expert Comment

by:afzz
Comment Utility
see the following function

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

Author Comment

by:mawingho
Comment Utility
How about the element not the first one?
0
 
LVL 142

Expert Comment

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

Open in new window

0
 
LVL 4

Expert Comment

by:afzz
Comment Utility

$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
Comment Utility
0
 

Author Comment

by:mawingho
Comment Utility
unset is doesn't work
0
 
LVL 4

Expert Comment

by:afzz
Comment Utility
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
Comment Utility
I want to remove just ONE element
0
 

Author Comment

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

Expert Comment

by:hernst42
Comment Utility
array_hist does excatly that what you posted in your example. If it's not working please give a new, correct example.
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 

Author Comment

by:mawingho
Comment Utility
is this a valid function =.=''
0
 
LVL 4

Expert Comment

by:afzz
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility

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
Comment Utility
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
Comment Utility
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
Comment Utility
@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
Comment Utility
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

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Building a website can seem like a daunting task to the uninitiated but it really only requires knowledge of two basic languages: HTML and CSS.
Password hashing is better than message digests or encryption, and you should be using it instead of message digests or encryption.  Find out why and how in this article, which supplements the original article on PHP Client Registration, Login, Logo…
The viewer will learn the benefit of using external CSS files and the relationship between class and ID selectors. Create your external css file by saving it as style.css then set up your style tags: (CODE) Reference the nav tag and set your prop…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

772 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now