2012-04-24 8 views
-1

を二重引用符で空の文字列に置き換えます
Search and replace inside an associative arrayが可能な重複PHPで

私はこの前に要請されているかもしれないと思います。しかし、私は単純な解決策がほしいだけです。

Array ( "name" => "Krish", 
      "age" => "27", 
      "COD" => "" 
     ) 

が、私は0 "

その多次元配列 "と"" 置き換えたい:

は、私はこのような配列を持っています。戻り値も配列でなければなりません。

編集:私はpreg_replaceとstr_replaceを試しました。何らかの理由で、これらは私のためには機能しませんでした。あなたは鍵が、それはあなたがこの

$array['cod'] = 0; 
+2

コードを書き始める。あなたがそれを働かせることができないなら、戻って来て、もう一度聞いてください。始めるヒントを探しているだけの場合は、配列をループし、 '' "の値を' 0'に置き換える必要があります。 – AndrewR

+0

@Kevin Rave preg_replaceとstr_replaceは、配列を使用しているときに文字列に使用されます。文字列に変換するか、文字列に変換するかのどちらかです。配列をループし、必要に応じて操作します。以下の私の例を考えてください –

答えて

0
$array = array(
    "name" => "Krish", 
    "age" => "27", 
    "COD" => "" 
); 

配列が$arrayの場合:

$array['COD'] = "0"; 
+0

ループが必要ですか?このために1行のコードが必要であると考えました。 –

+1

これは '$ value'のローカル値だけを変更します。あなたは '&$ value'の代わりに参照を使うべきです – Tchoupi

+0

ええ、値が空であるかどうかを判断したい場合はループが必要です。置き換えたいキーが何であるか分かっていれば、コードの1行でこれを実行できます。 –

0

のようにそれを行うことができますが何であるかを知っていれば

:あなたがループアレイと、あなたが望むもの

foreach($array as $key => $value) 
{ 
    if($value == "") $array[$key] = 0; 
} 

は注意をrepalceこと

+0

その多次元配列。再帰的にしたい。 –

0
<?php 
$arr=array(
    "name" => "Krish", 
    "age" => "27", 
    "COD" => "" 
); 

print_r(array_map(function($i){return (''===$i)?0:$i;},$arr)); 
?> 
1
$entry = array("name" => "Krish", 
       "age" => "27", 
       "COD" => ""); 
$arr = array_filter($entry, 'valcheck'); 
print_r($entry); //ORIGINAL ARRAY 
print_r($arr); //MODIFIED ARRAY 
function valcheck($var) 
{ 
    if($var === "") 
     return 0; 
    else 
     return $var; 
}