Можно ли избежать array(1) { [0]=> string(12)}
из var_dump($variable)
потому что я хочу показывать только значения из var_dump и за исключением array string
?
Тестирование кода
<?php $array = array( "foo" => "bar", "bar" => "foo", 100 => -100, -100 => 100, ); var_dump($array); ?>
теперь результаты будут такими, как это
array(4) { ["foo"]=> string(3) "bar" ["bar"]=> string(3) "foo" [100]=> int(-100) [-100]=> int(100) }
Но я хочу получить только значения bar
и foo
кроме строки (3) и массива (4)?
Прямо здесь:
foreach ($array as $key => $value){ echo $key.'=>'.$value."\n"; }
Для каждой пары «ключ-значение» это будет отражать элементы по желанию.
<?php $array = array( "foo" => "bar", "bar" => "foo", 100 => -100, -100 => 100 ); print_r($array); $newArray = array_filter($array, function($v) { return (gettype($v) != 'string'); }); print_r($newArray); ?>
Выходы:
Array ( [foo] => bar [bar] => foo [100] => -100 [-100] => 100 ) Array ( [100] => -100 [-100] => 100 )
$newArray
содержит все значения, кроме строк. (вы можете изменить !=
на ==
чтобы получить только строковые значения)
После вашего редактирования я думаю, что вам может понадобиться это (доступ к отдельным элементам в ассоциативном массиве):
echo $array['bar']; echo $array['foo'];
Выходы:
foo bar
http://php.net/manual/en/function.array-values.php
$array = array( "a" => "bar", "b" => "foo", ); var_dump($array); //bar //foo
Пытаться
<?php $array = array( "foo" => "bar", "bar" => "foo", 100 => -100, -100 => 100, ); echo '<pre>'; print_r($array); echo '</pre>'; ?>
Вы можете сделать:
call_user_func_array('var_dump', $array);
Это использует var_dump()
для каждого значения $array
вместо целого массива:
$array = array( "foo" => "bar", "bar" => "foo", 100 => -100, -100 => 100, ); call_user_func_array('var_dump', $array); echo implode(', ', $array); # for comparison
Вывод:
string(3) "bar" string(3) "foo" int(-100) int(100) bar, foo, -100, 100