Мне нужно нажать на значения массива на основе конкретного условия, как правильно это сделать? - PullRequest
1 голос
/ 13 мая 2009

У меня есть цикл, содержащий условие (и инкрементное значение i):

if(condition)){$arr[$i] = array("value" => $node->nodeValue));}
else{$arr[$i] = array("string" => $node->nodeValue);}

В конце концов мне нужен массив, подобный этому:

    Array ( [1] => Array ( [string] => abc [value] => 0,999 ) 
            [2] => Array ( [string] => meh [value] => 0,123 ) 
            [x] => Array ( [string] => xxx [value] => xxx ) )

Я понимаю, что мой код не работает, я думаю, что я должен использовать array_push, но мне было интересно, есть ли лучший способ добиться этого

Большое спасибо

Ответы [ 2 ]

1 голос
/ 13 мая 2009

Извините, вопрос не очень понятен .. Это то, что вы пытаетесь сделать?

$result = array();
foreach( $nodes as $node ) 
{
    $type = 'value';
    if( is_string( $node->nodeValue ) )
    {
        $type = 'string';
    }

    $result[][$type] = $node->nodeValue;
}
0 голосов
/ 13 мая 2009

Вы можете написать это несколько более кратко, используя оператор?::

$fieldname = ($condition? "value" : "string"); 
$arr[$i][$fieldname] = $node->nodeValue ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...