Присвойте переменную значениям в массиве php - PullRequest
0 голосов
/ 22 февраля 2012

Вот что я хочу сделать:

  1. Разделить слово на отдельные символы.Вводимое слово происходит из формы и может отличаться для каждого пользователя.

  2. Назначьте переменные для каждого персонажа, чтобы я мог управлять ими по отдельности.

Пока это мой код (который не работает).Прошу прощения, если здесь много глупых ошибок, но я новичок в PHP.

<?php

$word = $_POST['input'];

//split word into charachters

$arr1 = str_split($word);

//assigning a variable to each charchter 

$bokstaver = array();

while($row = $arr1)
{
$bokstaver[] = $row[];
}

$int_count = count($bokstaver);
$i=0;

foreach ($bokstaver as $tecken) {
$var = 'tecken' . ($i + 1);
$$var = $tecken;
$i++;
} 

?>

Я бы хотел получить столько переменных $ tecken (с именами $ tecken, t $ tecken1, $ tecken2 и т. Д.), Сколько число символов во входных данных.

Вся помощь высоко ценится, как всегда!

Ответы [ 3 ]

0 голосов
/ 22 февраля 2012

почему ты этого хочешь?Вы можете просто пойти с:

$word = 'test';
echo $word[2]; // returns 's'
echo $word{2}; // returns 's'
$word{2} = 'b';
echo $word{2}; //returns 'b'
echo $word; // returns 'tebt'
...
0 голосов
/ 22 февраля 2012

Вам не нужно создавать отдельные переменные для каждой буквы, потому что у вас есть все буквы в массиве. Затем вы просто индексируете массив, чтобы получить каждую букву.

Вот как бы я это сделал.

//get the word from the form
$word = $_POST['input'];

//split word into characters 
$characters = str_split($word);


//suppose the word is "jim"
//this prints out 
// j
// i
// m

foreach($characters as $char)
    print $char . "\n"


//now suppose you want to change the first letter so the word now reads "tim"
//Access the first element in the array (ie, the first letter) using this syntax
$characters[0] = "t";
0 голосов
/ 22 февраля 2012

Не думаю, что это хорошая идея, но вот как ты это делаешь:

<?php
$input = 'Hello world!';
for($i = 0; $i < strlen($input); $i++) {
    ${'character' . $i} = $input[$i];
}
...