相关疑难解决方法(0)

array_filter()和array_map()之间的区别?

我查看了网络中的类似主题以及堆栈溢出,但可以清楚地了解这一点.array_map,array_walk和array_filter之间的区别

<?php
error_reporting(-1);

$arr = array(2.4, 2.6, 3.5);

print_r(array_map(function($a) {
    $a > 2.5;
},$arr));

print_r(array_filter($arr, function($a){
    return $a > 2.5;
}));

?>
Run Code Online (Sandbox Code Playgroud)

上面的代码返回一个过滤后的数组,其值大于2.5.我可以实现array_filter与...的关系array_map吗?

php arrays associative-array

18
推荐指数
3
解决办法
1万
查看次数

如何将数组或对象数组转换为关联数组?

我习惯了perl的map()函数,其中回调可以分配键和值,从而创建一个关联数组,其中输入是一个平面数组.我知道array_fill_keys()如果您只想创建一个字典样式的哈希,哪个可能很有用,但是如果您不一定希望所有值都相同呢?显然所有事情都可以通过foreach迭代来完成,但是还有其他(可能更优雅)的方法吗?

编辑:添加一个示例来阐明转换.请不要挂断转换,问题是将平面列表转换为哈希值,我们不能假设所有值都是相同的.

$original_array: ('a', 'b', 'c', 'd')
$new_hash: ('a'=>'yes', 'b'=>'no', 'c'=>'yes', 'd'=>'no')

*note: the values in this example are arbitrary, governed by some business logic that is not really relevant to this question. For example, perhaps it's based on the even-oddness of the ordinal value of the key
Run Code Online (Sandbox Code Playgroud)

实际示例 因此,使用此处提供的答案,以下是如何解析$ _POST以获取仅列出与给定条件匹配的输入字段的列表.这可能很有用,例如,如果表单中有很多输入字段,但必须同时处理它们中的某些组.

在这种情况下,我有许多输入字段,表示数据库的映射.每个输入字段如下所示: <input name="field-user_email" value="2" />其中每种类型的字段都以"field-"为前缀.

我们想要做的是,首先,获取实际以"field-"开头的那些输入字段的列表,然后我们要创建一个名为的关联数组$mapped_fields,其中提取的字段名称作为键,实际输入字段的值作为价值.

$mapped_fields = array_reduce( preg_grep( '/field-.+/', array_keys( $_POST ) ), function( $hash, $field ){ $hash[substr( $field, 6 )] …
Run Code Online (Sandbox Code Playgroud)

php array-map

15
推荐指数
1
解决办法
1万
查看次数

array_walk还是array_map?

我目前正在使用array_map回调来应用数组元素.但是我希望能够将一个参数传递给回调函数array_walk.我想我可以使用array_walk,但我需要返回值为数组,如果你使用array_map,而不是TRUE或FALSE.

那么是否可以使用array_map并将参数传递给回调函数?或者可能使array_walk返回数组而不是布尔值?

php arrays return-value

10
推荐指数
2
解决办法
8449
查看次数

如何让array_walk使用PHP内置函数?

我只是想用array_walk()ceil()圆阵列中的所有元素.但它不起作用.

代码:

$numbs = array(3, 5.5, -10.5); 
array_walk($numbs, "ceil"); 
print_r($numbs);  
Run Code Online (Sandbox Code Playgroud)

输出应为:3,6,-10

错误消息:

警告:ceil()预计在第2行给出1个参数,2

输出为:3,5.5,-10.5(与之前使用ceil()相同)

我也尝试过round().

php arrays ceil

9
推荐指数
2
解决办法
1052
查看次数

mysqli_real_escape_string 与 php 中的数组?

我的代码是这样的

 public function addQuestions($data){


    $ans = array();
    $ans[1] = $data['ans1'];
    $ans[2] = $data['ans2'];
    $ans[3] = $data['ans3'];
    $ans[4] = $data['ans4'];
    $ans= mysqli_real_escape_string($this->db->link, $data[$ans]);

}
Run Code Online (Sandbox Code Playgroud)

这是在这个 sql 函数中使用数组的正确方法吗??

php mysql arrays mysqli function

5
推荐指数
1
解决办法
3439
查看次数

为什么 array_walk() 没有按预期工作?

以下code does not work按预期。

$fruits = array('apple', 'orange', 'banana', 'cherry');

array_walk($fruits, function($a) {
        $a= ucfirst($a);
});

var_dump($fruits);
Run Code Online (Sandbox Code Playgroud)

为什么当我们将引用传递给数组中的单个条目时会起作用$fruits

array_walk(
    $fruits, 
    function(&$a) {
        $a = ucfirst($a);
    }
);
Run Code Online (Sandbox Code Playgroud)

注意:我知道array_map并且foreach会起作用,但为什么不起作用array_walk()

php arrays

3
推荐指数
1
解决办法
2502
查看次数

寻找等效的array_map来处理关联数组中的键

假设我有一个关联数组:

    $array = array(
      "key1" => "value",
      "key2" => "value2");
Run Code Online (Sandbox Code Playgroud)

而且我想把键全部大写.我怎么做比一般化的方式(意思是我可以应用用户定义的函数来应用键名)?

php associative-array array-map

0
推荐指数
1
解决办法
1483
查看次数