我有一个JavaScript数组,如:
[["$6"], ["$12"], ["$25"], ["$25"], ["$18"], ["$22"], ["$10"]]
Run Code Online (Sandbox Code Playgroud)
我将如何将单独的内部数组合并为:
["$6", "$12", "$25", ...]
Run Code Online (Sandbox Code Playgroud) 在PHP中,是否可以在不使用递归或引用的情况下展平(双/多)维数组?
我只对值感兴趣所以可以忽略键,我正在考虑array_map()和array_values().
有没有办法让这段代码在没有警告的情况下工作?
function myFunction($value, $key, &$array)
{
if (strlen($value)<=2) $array[] = $key.$value;
}
$a = array("aa", "bbb", "cc", "dd");
$resultA = array();
array_walk($a, 'myFunction', &$resultA);
// now '$resultA' should contain: Array([0] => aa0 [1] => cc2 [2] => dd3)
Run Code Online (Sandbox Code Playgroud)
它工作,但它总是抛出此警告消息:
警告:第7行的path_to\index.php中不推荐使用call-time pass-by-reference
我认为从调用中删除&符应该足以使警告消失,但是,奇怪的是,如果我在"myFunction"中指定&,则"array_walk"不会形成第三个参数.为了使它工作,必须有一个&在电话中,但它会触发警告.
此外,作为一个临时解决方法,我试图将php.ini var"allow_call_time_pass_reference"设置为true,但我仍然收到警告......
我想知道可能有更好/首选的方法将用户定义的函数应用于带有传递引用参数的数组的每个元素.
我有这样的数组.........
Array
(
[0] => Array
(
[0] => rose
[1] => monkey
[2] => donkey
)
[1] => Array
(
[0] => daisy
[1] => monkey
[2] => donkey
)
[2] => Array
(
[0] => orchid
[1] => monkey
[2] => donkey
)
)
Run Code Online (Sandbox Code Playgroud)
我想要这样.........
Array
(
[0] => rose
[1] => monkey
[2] => donkey
[3] => daisy
[4] => monkey
[5] => donkey
[6] => orchid
[7] => monkey
[8] => donkey
)
Run Code Online (Sandbox Code Playgroud)
....我使用了数组合并但它没有工作,因为我的数组生成动态,每次显示不同的数组.问题是我无法在array_merge()函数中动态传递数组.它只接受数组的手动条目而不接受任何其他变量.function只接受数组.
它像这样工作......
$total_data …Run Code Online (Sandbox Code Playgroud) 所以我有一个看起来像这样的数组:
[98] => Array
(
[City] => Caracas
[Country] => Venezuela
[Continent] => Latin America
)
[99] => Array
(
[City] => Cairo
[Country] => Egypt
[Continent] => Middle East
)
[105] => Array
(
[City] => Abu Dhabi
[Country] => United Arab Emirates
[Continent] => Middle East
)
[106] => Array
(
[City] => Dubai
[Country] => United Arab Emirates
[Continent] => Middle East
)
[107] => Array
(
[City] => Montreal
[Country] => Canada
[Continent] => North America …Run Code Online (Sandbox Code Playgroud) 我有一个多维数组得到如下给出的结果
Array
(
[0] => Array
(
[0] => 70
)
[1] => Array
(
[0] => 67
)
[2] => Array
(
[0] => 75
[1] => 73
[2] => 68
)
[3] => Array
(
[0] => 68
)
[4] => Array
(
[0] => 76
)
)
Run Code Online (Sandbox Code Playgroud)
但我需要将其转换为单个数组
我想转换为单维数组
Array
(
[0] => 70
[1] => 67
[2] => 75
[3] => 73
[4] => 68
[5] => 68
[6] => 76
)
Run Code Online (Sandbox Code Playgroud)
如何使用PHP函数转换它?
或者还有其他办法吗?
比方说,我有一个这样的数组:
$array = [
'car' => [
'BMW' => 'blue',
'toyota' => 'gray'
],
'animal' => [
'cat' => 'orange',
'horse' => 'white'
]
];
Run Code Online (Sandbox Code Playgroud)
然后,我想获取所有值(颜色、'blue'、'gray'、'orange'、'white')并将它们连接到一个数组中。如何在不使用foreach两次的情况下做到这一点?
提前致谢。
我有这样的数组:
array(2) {
[0]=> array(1) {
["name"]=> string(8) "TestName"
}
[1]=> array(1) {
["surname"]=> string(6) "iljado"
}
}
Run Code Online (Sandbox Code Playgroud)
我需要它像这样:
array(2) {
["name"]=> string(8) "TestName" ,
["surname"]=> string(6) "iljado"
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
可能重复:
如何在PHP中将多维数组"展平"为简单数组?
我怎么转
Array
(
[0] => Array
(
[id] => 33
[name] => Robb's Event
)
)
Run Code Online (Sandbox Code Playgroud)
进入这个
Array
(
[id] => 33
[name] => Robb's Event
)
Run Code Online (Sandbox Code Playgroud) 我有一个问题是获取数组值"lat"和"long"而不用foreach函数更深入.阵:
array(1) {
["Berlin, Germany(All airports)"]=>
array(1) {
["Berlin Brandenburg Willy Brandt(BER)"]=>
array(2) {
["lat"]=>
string(9) "52.366667"
["lon"]=>
string(9) "13.503333"
}
}
Run Code Online (Sandbox Code Playgroud)
}
功能:
foreach($results as $key => $val){
//here i want to reach lat and long without additional foreach loop
}
Run Code Online (Sandbox Code Playgroud)
谢谢大家的答案.