2013-10-23 10 views
6

私はさまざまな方法を試みましたが、配列から変数をアンセットできませんでした。私は文字列で始まり、それを配列に展開しました。今はBillを削除したいのです。私は何かを逃していますか?私はphp.netを訪問していると私は、まだ[「ビル」]配列のエントリではなく、インデックスの値であるためであること...unset()not working PHP

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 

</head> 
<body> 

<?php 


$names = "Harry George Bill David Sam Jimmy"; 

$Allname = explode(" ",$names); 

unset($Allname['Bill']); 

sort($Allname); 

$together = implode("," ,$Allname); 

echo "$together"; 
?> 
</body> 
</html> 
+3

値の配列がありますが、その値を 'index'として使用しようとしています。存在しない 'Bill'の位置のデータを探しています。 – christopher

+1

unset($ Allname [2]) - >値ではなくインデックスを探しています – pbenard

+1

billは配列の値ではありません –

答えて

11

を立ち往生。解除はキーではなく値を期待しているので

PHP array delete by value (not key)

+0

私は今シーンを作るすべてありがとうございました.....私は必要なものを共犯することができましたforeachループを使用します。リンクのおかげで1intello – Hugo

+0

@Hugo問題なし;) –

1

:あなたが何をしたいか は

unset($Allname[2]); //Bill is #3 in the list and the array starts at 0. 

またはより詳細な、より良い答えをこの質問を参照してくださいです。

Billはあなたの価値です。

unset($Allname[2]) 

あなたは次のように配列に見える爆発後:

array (

0 => 'Harry', 
1 => 'George', 
2 => 'Bill', 
... 
) 
+0

私は法案の位置を知っていない場合、私はforeachを使用するのだろうか? – Hugo

+1

にはいくつかの方法があります。 foreachループは可能ですが、Billのキーを取得するには 'array_search()'が好ましいでしょう。 '$ key = array_search( 'Bill'、$ Allname);' – KURN

1

unset($arr['key'])キーの設定が解除されます。あなたの鍵は01などであり、 "Bill"ではありません。

あなたは「ビル」を削除したい場合は

は、それがこれを行うには最も簡単です:

$names   = 'Harry George Bill David Sam Jimmy'; 
$namesArray  = explode(' ', $names); 
$namesWithoutBill = array_diff($namesArray, array('Bill')); 
2
 
You can unset by array key 
unset($Allname[2]); 
0

時には、それは配列のように見えるが、それは、配列の印刷された文字列を指定できます... - それは私たちの最高に起こります...

あなたの配列は本当に配列です。 私はそれが愚かに聞こえるが、時には多くの時間のスクリーン時間の後に、間違いが行われることを知っている。

<?php 

$MyArray = array('0' => 'this','1' => 'is','2' => 'an array'); 
echo is_array($MyArray) ? 'It Is an Array' : 'not an Array'; 

?> 

これは、出力です。これは配列です。