2012-04-18 14 views
2

私は、文字列のPHP配列を使用する場合PHPで位置文字列を置き換えるには?

arr={"one", "one", "one", "one", "one", "one", "one", "one", "one"} 

を持って、私は「1」に「1」を置き換えたいのですが、私は唯一の0 2 4 6 8でいくつかの位置を交換し、1 3 5 7 9で正確

結果を変更しないで欲しい。arr={"1", "one", "1", "one", "1", "one", "1", "one", "1"}

私はPHPでstr_replaceを使用している場合、結果はすべてのpostionを置き換える、私はこの仕事のアイデアが欲しいですか?

+4

であなたは*本物*のPHP構文を使用してくださいことはできますか?あなたが扱っているデータ構造は完全にはっきりしていません。 – deceze

+2

これは現実的なユースケースのようには見えません。この宿題やインタビューの質問なのですか? (それがあれば問題ありませんが、そのようにして、それをタグ付けする必要があります) – Trott

+0

http://php.net/for –

答えて

0
for($i=0; $i < count($arr); $i++) 
{ 
    if(($i%2) == 0) $arr[$i] = '1'; 
} 
+0

それには '&'が使用されます。 forを使うと、さらに 'count($ arr)'を呼び出すことができます –

+0

@web 'for'ループで?! – deceze

+1

'foreach'の' for'ではなく、配列全体を反復するのに使われます。または、少なくとも、for($ i = 0; $ i

0
foreach($arr as $ak => &$av) { 

if($ak % 2 == 0 && $av == 'one') { 

    $av = '1'; 

} 

} 
+3

'0%2'も' 0'です... – deceze

+0

あなたが見逃したのは、文字列と配列がないことだけです;) – Prix

0

多分これ

for($i = 0; $i < count($arr);$i++){ 
     if($i == 0 || $i%2 != 0){ 
      $arr[$i] = 1; 
     } 
    } 
+0

あなたが見逃したのは、彼が文字列を持ち、配列ではないということです;) – Prix

1
$string = 'arr={"one", "one", "one", "one", "one", "one", "one", "one", "one"}'; 

$arr = explode(',', $string); 

for ($i = 0; $i < count($arr); $i++) 
{ 
    if ($i % 2 == 0) 
     $arr[$i] = str_replace('one', '1', $arr[$i]); 
} 

echo implode(',', $arr); 
関連する問題