webForumDet fria alternativet

Ta bort ett element ur en array

8 svar · 566 visningar · startad av learn

learnMedlem sedan jan. 20051 130 inlägg
#1

Jag har en array med en massa element. Nu har jag ett värde som jag vill kolla ifall det finns med i arrayen eller inte. Finns det ngt element med det givna värdet så skall detta element tas bort.

Hur gör jag detta?

FuelMedlem sedan okt. 20001 285 inlägg
#2

hehe .. det här var ett tag sen.. detta verkar funka iaf ?

<?php
$the_array = array("Nisse1", "Nisse2", "Nisse3", "Nisse4");

function replacer($text,$new,$the_array)
{
	$num = count($the_array);
	for ($i = 0;$i < $num; $i++) {
		$oj .= str_replace($text, $new, $the_array[$i]);
	}
    print_r($oj);
}

replacer('Nisse2','learn',$the_array);
?>
learnMedlem sedan jan. 20051 130 inlägg
#3

Tack, det var ju en lösning.

FuelMedlem sedan okt. 20001 285 inlägg
#4

hoppas nästan nån kommer och rättar mig .. det kändes inte snyggt .. :D

Patrik81Medlem sedan okt. 2001538 inlägg
#5

Helt otestat, utan löften om "optimalitet" men here goes:

function remove( $value, $array )
{
    $new = array();
    foreach ( $array as $val )
    {
        if ( !$value != $val ) {
            $new[] = $val;
        }
    }
    return $new;
}

$list = array( "Det", "var", "en", "gång", "en", "liten", "get", "som", "hette", "Agnus" );

$list2 = remove( "var", $list );

Mvh Patrik

tronezMedlem sedan juli 2001728 inlägg
#6
<?php
$array = array("Nisse1", "Nisse2", "Nisse3", "Nisse4");

echo "<pre>";
print_r($array);
echo "</pre>";

function delete($text,$array)
{
	global $array;

	if(in_array($text,$array)){

		while ($current_index = current($array)) {
			if ($current_index == $text) {
				unset( $array[key($array)] );
				break;
			}
			next($array);
		}	
	}
}

delete('Nisse3',$array);

echo "<br><br><pre>";
print_r($array);
echo "</pre>";
?>

denna borde även funka

plupMedlem sedan sep. 200593 inlägg
#7

Oj oj oj, all denna fulkod hurts my brains

Dom inbyggda funktionerna i PHP är till för att användas!

<?php

$array = array ('Nisse1', 'Nisse2', 'Nisse2', 'Nisse3', 'Nisse4');
$array = array_unique ($array);     // RAD #4!
$key = array_search ('Nisse2', $array);
unset ($array[$key]);
$array = array_values ($array);     // RAD #7!

print_r ($array);

?>

Rad 4 behövs ENDAST om du har "dublett"-värden i din array (I detta fall "Nisse2").
Rad 7 behövs ENDAST om du behöver "re-indexera" om din array.

FuelMedlem sedan okt. 20001 285 inlägg
#8

Bra ! .. då vet vi (y)

learnMedlem sedan jan. 20051 130 inlägg
#9

Tack s'mkt!

127 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)