class something{
public function add_val( $val ){
$array = array();
foreach( $val as $value ) {
$array[] = static::$post[${$value}];
}
return $array;
}
pulblic function somethingelse(){
....
....
$optionsArray['value'] = array_map( 'add_val', array_chunk( $drop_val, count( $optionsArray['heading_x'] ) ) );
....
....
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用array_map()在另一个内调用add_val方法?
我试图从array_map匿名函数中调用我的对象的一个方法.到目前为止,我收到了预期的错误:
致命错误:在不在对象上下文中时使用$ this ...
我知道为什么我会收到这个错误,我只是不知道如何实现我想要的...有人有任何建议吗?
这是我目前的代码:
// Loop through the data and ensure the numbers are formatted correctly
array_map(function($value){
return $this->some_method($value,'value',false);
},$this->mssql->data[0]['results'][0]);
Run Code Online (Sandbox Code Playgroud) 嘿所有,我不时使用array_map来编写递归方法.例如
function stripSlashesRecursive( $value ){
$value = is_array($value) ?
array_map( 'stripSlashesRecursive', $value) :
stripslashes( $value );
return $value;
}
Run Code Online (Sandbox Code Playgroud)
题:
说我想把这个函数放在一个静态类中,我如何使用array_map回到类中静态方法的范围,如Sanitize :: stripSlashesRecursive(); 我确定这很简单,但我不能把它想象出来,看看php.net也是如此.
我想在php中使用数组映射中的empty().我收到的错误是它不是一个有效的回调.
$ cat test.php
<?
$arrays = array(
'arrEmpty' => array(
'','',''
),
);
foreach ( $arrays as $key => $array ) {
echo $key . "\n";
echo array_reduce( $array, "empty" );
var_dump( array_map("empty", $array) );
echo "\n\n";
}
Run Code Online (Sandbox Code Playgroud)
$ php test.php
arrEmpty
Warning: array_reduce(): The second argument, 'empty', should be a valid callback in /var/www/authentication_class/test.php on line 12
Warning: array_map(): The first argument, 'empty', should be either NULL or a valid callback in /var/www/authentication_class/test.php on line 13
NULL
Run Code Online (Sandbox Code Playgroud)
这不应该工作吗? …
我有一个2d数组(从PDO MySQL DB返回)的形式
{
[0] => {
"ID" => 1,
"Name" => "Name1"
},
[1] => {
"ID" => 2,
"Name" => "Name2"
},
[2] => {
"ID" => 3,
"Name" => "Name3"
}
}
Run Code Online (Sandbox Code Playgroud)
有没有一个优雅/有效的解决方案来转换它
{
[1] => "Name1",
[2] => "Name2",
[3] => "Name3"
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以循环并以这种方式创建数组,但我觉得这可能没有像花哨的array_map那样有效.
基本上我想要像......
array_map(
function ($value) {
return $value['ID']=>$value['Name'];
}, $ResultArray);
Run Code Online (Sandbox Code Playgroud) 我试图动态使用数组映射,数组中的列可能会更改,所以我不想使用字符串指定它但想要使用变量来指定它,它不起作用.尝试以下所有组合,它返回null.
$column = 'MANAGER_GROUP';
array_map(function($el){ return $el['"'.$column.'"']; }, $dbData);
array_map(function($el){ return $el["$column"]; }, $dbData);
array_map(function($el){ return $el[$column]; }, $dbData);
//this works though
array_map(function($el){ return $el["MANGER_GROUP"]; }, $dbData);
Run Code Online (Sandbox Code Playgroud) 嘿,我有带有返回键的数组
$temp = $sth->fetchAll(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)
我的结果如下所示:
[0] => [
'id' = 11,
'title' => 't1'
]
[1] => [
'id' = 12,
'title' => 't2'
]
Run Code Online (Sandbox Code Playgroud)
如果我想返回 ids 作为密钥,我会这样调用:
$temp = array_map(function($v){return $v[0];}, $sth->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC));
Run Code Online (Sandbox Code Playgroud)
我的结果如下所示:
[11] => [
'title' => 't1'
]
[12] => [
'title' => 't2'
]
Run Code Online (Sandbox Code Playgroud)
如何通过ID返回对象数组?当我这样做时,我的对象中没有方法......
$temp = array_map(function($v){return $v[0];}, $sth->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_CLASS));
Run Code Online (Sandbox Code Playgroud) 在 Laravel 环境中,我有一组时间,我添加了几分钟,但它没有给我我所期望的结果。
在下面的array_map函数中发生了一些奇怪的addMinutes事情
$d = array_map(function ($date) {
$base = Carbon::parse($date['time']);
return [
'start' => $base->addMinutes(150)->toDateTimeString(),
'end' => $base->addMinutes(190)->toDateTimeString()
]
}, $dates);
Run Code Online (Sandbox Code Playgroud)
所以 150 分钟是 2 小时 30 分钟,190 分钟是 3 小时 10 分钟,所以我假设以下
2018-07-05 19.20.00 (+150 mins) -> start = 2018-07-05 21.50
(+190 mins) -> end = 2018-07-05 22.30
Run Code Online (Sandbox Code Playgroud)
我实际上得到了
2018-07-05 19.20.00 (+150 mins) -> start = 2018-07-05 21.30
(+190 mins) -> end = 2018-07-06 00.40
Run Code Online (Sandbox Code Playgroud)
任何人都可以看到我在碳处理过程中遗漏的明显内容吗?我很确定这与 Carbon 有关,因为我将上面的内容重组array_map为 aforeach并得到了相同的结果 …
基本上我有一系列对象,例如
var array = [{x: 10, y: 5, r: 10, ...} ]
对象中还有更多字段,但至此,这是我发现的将字段分隔为数组的方法:
var x = array.map(obj => obj.x);
var y = array.map(obj => obj.y);
// and so on for each field
Run Code Online (Sandbox Code Playgroud)
可行,但随着字段数和数组大小的增加,效率会很低,因为它会多次扫描数组。我可以使用标准循环,但是我更喜欢map(),因为我认为这种情况下可读性更高。是否可以从地图返回多个值?我认为是这样的:
var [x, y] = array.map(obj => [obj.x, obj.y]); // should output two arrays
Run Code Online (Sandbox Code Playgroud)
或任何类似的可读性(减少IMO可读性)。
array.entries()返回迭代器对象的函数。如何实现这些功能?我需要显示一个数组,并且由于方向问题,我需要使用 array.map 而不是 Flatlist 来渲染它。
在 Flatlist 中,我可以轻松地使用它,numColumns = {2}但我确实需要使用 array.map 而不是 Flatlist 来做到这一点,我可以渲染数组以仅显示一列,这就是我的制作方法:
import React from 'react';
import {View, Text, StyleSheet} from 'react-native';
import {ScrollView} from 'react-native-gesture-handler';
const data = [
{
id: 1,
name: 'Ronaldo',
},
{
id: 2,
name: 'Ronaldo',
},
{
id: 3,
name: 'Ronaldo',
},
{
id: 4,
name: 'Ronaldo',
},
{
id: 5,
name: 'Ronaldo',
},
];
const Card = ({id, name}: any) => {
return (
<View style={styles.card}>
<Text>{id}</Text>
<Text>{name}</Text>
</View> …Run Code Online (Sandbox Code Playgroud) arrays scrollview array-map react-native react-native-flatlist
array-map ×10
php ×8
arrays ×5
class ×2
callback ×1
javascript ×1
lambda ×1
methods ×1
object ×1
pdo ×1
php-carbon ×1
react-native ×1
recursion ×1
scope ×1
scrollview ×1