相关疑难解决方法(0)

在PHP中将stdClass对象转换为数组

我从postmeta获取post_id为:

$post_id = $wpdb->get_results("SELECT post_id FROM $wpdb->postmeta WHERE (meta_key = 'mfn-post-link1' AND meta_value = '". $from ."')");
Run Code Online (Sandbox Code Playgroud)

当我尝试print_r($post_id); 我有这样的数组:

Array
(
    [0] => stdClass Object
        (
            [post_id] => 140
        )

    [1] => stdClass Object
        (
            [post_id] => 141
        )

    [2] => stdClass Object
        (
            [post_id] => 142
        )

)
Run Code Online (Sandbox Code Playgroud)

我不知道如何遍历它,我怎么能得到像这样的数组

Array
(
    [0]  => 140


    [1] => 141


    [2] => 142

)
Run Code Online (Sandbox Code Playgroud)

知道我怎么能这样做.......提前谢谢

php arrays

102
推荐指数
8
解决办法
24万
查看次数

如何在没有循环的情况下在多维数组中获取特定"键"的数组

假设我有以下多维数组(从MySQL或服务中检索):

array(
    array(
        [id] => xxx,
        [name] => blah
    ),
    array(
        [id] => yyy,
        [name] => blahblah
    ),
    array(
        [id] => zzz,
        [name] => blahblahblah
    ),
)
Run Code Online (Sandbox Code Playgroud)

我们可以id在一个" 内置 "php函数调用中获取一个s 数组吗?还是一行代码?
我知道传统的循环并获得价值,但我不需要这样:

foreach($users as $user) {
    $ids[] = $user['id'];
}
print_r($ids);
Run Code Online (Sandbox Code Playgroud)

也许有些array_map()call_user_func_array()可以做的魔力.

php

101
推荐指数
2
解决办法
11万
查看次数

从多维数组中内爆数据

我是PHP的新手,我需要快速解决以下问题,但似乎无法想出一个:

我有一个像这样的多维数组

Array
(
    [0] => Array
        (
            [blogTags_id] => 1
            [tag_name] => google
            [inserted_on] => 2013-05-22 09:51:34
            [inserted_by] => 2
        )

    [1] => Array
        (
            [blogTags_id] => 2
            [tag_name] => technology
            [inserted_on] => 2013-05-22 09:51:34
            [inserted_by] => 2
        )
)
Run Code Online (Sandbox Code Playgroud)

我想使用implode()以某种方式返回一个包含键值的逗号分隔字符串,tag_name如此.

google, technology
Run Code Online (Sandbox Code Playgroud)

是否有可能通过上述功能实现这种效果?如果没有,请建议替代解决方案.

php arrays implode

71
推荐指数
5
解决办法
9万
查看次数

在PHP中转置多维数组

你如何在PHP中翻转90度(转置)多维数组?例如:

// Start with this array
$foo = array(
    'a' => array(
       1 => 'a1',
       2 => 'a2',
       3 => 'a3' 
    ),
    'b' => array(
       1 => 'b1',
       2 => 'b2',
       3 => 'b3' 
    ),
    'c' => array(
       1 => 'c1',
       2 => 'c2',
       3 => 'c3' 
    )
);

$bar = flipDiagonally($foo); // Mystery function
var_dump($bar[2]);

// Desired output:
array(3) {
  ["a"]=>
  string(2) "a2"
  ["b"]=>
  string(2) "b2"
  ["c"]=>
  string(2) "c2"
}
Run Code Online (Sandbox Code Playgroud)

你会如何实施flipDiagonally()

编辑:这不是作业.我只是想看看是否有任何SOers比最明显的路线更具创造性的解决方案.但是,由于一些人抱怨这个问题太容易了,那么一个适用于 n 维数组的更通用的解决方案呢?

即如何编写函数以便:

$foo[j][k][...][x][y][z] …
Run Code Online (Sandbox Code Playgroud)

php arrays higher-order-functions

68
推荐指数
3
解决办法
4万
查看次数

PHP foreach与嵌套数组?

我有一个嵌套数组,我想在其中显示结果的子集.例如,在下面的数组中,我想循环遍历嵌套数组[1]中的所有值.

Array
(
  [0] => Array
    (
      [0] => one
      [1] => Array
        (
          [0] => 1
          [1] => 2
          [2] => 3
        )
    )

  [1] => Array
    (
      [0] => two
      [1] => Array
        (
          [0] => 4
          [1] => 5
          [2] => 6
        )
    )

  [2] => Array
    (
      [0] => three
      [1] => Array
        (
          [0] => 7
          [1] => 8
          [2] => 9
        )
    )
)

我试图使用foreach函数,但我似乎无法让它工作.这是我的原始语法(虽然我意识到这是错误的).

$tmpArray = array(array("one",array(1,2,3)),array("two",array(4,5,6)),array("three",array(7,8,9)));

foreach ($tmpArray[1] as $value) {
  echo …

php arrays foreach nested

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

将多维数组转换为单个数组

我有一个无数的多维数组

/* This is how my array is currently */
Array
(
[0] => Array
    (
        [0] => Array
            (
                [plan] => basic
            )

        [1] => Array
            (
                [plan] => small
            )

        [2] => Array
            (
                [plan] => novice
            )

        [3] => Array
            (
                [plan] => professional
            )

        [4] => Array
            (
                [plan] => master
            )

        [5] => Array
            (
                [plan] => promo
            )

        [6] => Array
            (
                [plan] => newplan
            )

    )

 )
Run Code Online (Sandbox Code Playgroud)

我想将此数组转换为此表单

/*Now, I want to simply …
Run Code Online (Sandbox Code Playgroud)

php arrays

35
推荐指数
8
解决办法
9万
查看次数

带有参数的php中的array_map函数

我有这个

$ids = array_map(array($this, 'myarraymap'), $data['student_teacher']);

function myarraymap($item) {
    return $item['user_id'];
}
Run Code Online (Sandbox Code Playgroud)

我想在我的函数中添加一个其他参数来获得类似的东西

function myarraymap($item,$item2) {
    return $item['$item2'];
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我吗?我尝试了很多东西,但没有任何效果

php arrays

33
推荐指数
4
解决办法
3万
查看次数

从每个子数组中获取特定元素

我有一个共同的模式,我确信在PHP中必须有一个内置的数组函数来处理,但只是看不到它.

我有多个数组,如下所示:

$testArray = array (
    'subArray1' => array(
        'key1' => "Sub array 1 value 1",
        'key2' => "Sub array 1 value 1"
    ),
    'subArray2' => array(
        'key1' => "Sub array 2 value 1",
        'key2' => "Sub array 2 value 2"
    )
);
Run Code Online (Sandbox Code Playgroud)

我需要key1从每个subArray 获取值,其中可以有任何数字.

我总是最终只是循环遍历每个数组以获得所需的值,但我确信必须有一种更简单,更有效的方法来处理它.

我目前正在使用以下简单的foreach来解析数组:

$preparedSubs = array();

foreach($testArray as $subArray) {
    $preparedSubs[] = $subArray['key1'];
}
Run Code Online (Sandbox Code Playgroud)

它尽可能短,但正如我所说,我确信有一个PHP结构可以更好地处理它.

php arrays

31
推荐指数
2
解决办法
2万
查看次数

array_map内联匿名函数

在这里测试了内联匿名函数array_map

并且它工作但当我尝试使用$ user_meta它不起作用.

$user_meta = Array ( [interest] => Array ( [0] => Array ) [type] => 
     Array ( [0] => Array ) [user_status] => Array ( [0] => deny)
     [firstname] => Array ( [0] => ) [lastname] => Array ( [0] => B ) 
     [email] => email@cc.com ) 

$user_meta = array_map(function($a) { return $a[0]; },$user_meta);
Run Code Online (Sandbox Code Playgroud)

"解析错误:语法错误,意外的T_FUNCTION,期待')'in"

这是显示错误的测试链接

php array-map

26
推荐指数
3
解决办法
4万
查看次数

在PHP中,是否有一个函数返回一个由关联数组数组中的键值组成的数组?

我确定之前已经问过这个问题,我很抱歉没先找到它.

原始数组:

[0] => Array
    (
        [categoryId] => 1
        [eventId] => 2
        [eventName] => 3
        [vendorName] => 4
    )

[1] => Array
    (
        [categoryId] => 5
        [eventId] => 6
        [eventName] => 7
        [vendorName] => 8
    )

[2] => Array
    (
        [categoryId] => 9
        [eventId] => 10
        [eventName] => 11
        [vendorName] => 12
    )
Run Code Online (Sandbox Code Playgroud)

我希望得到的结果是:print_r(get_values_from_a_key_in_arrays('categoryId',$ array));

[0] => 1
[1] => 5
[2] => 9
Run Code Online (Sandbox Code Playgroud)

我只是在寻找比编写自己的基于foreach的功能更清晰的东西.如果foreach是答案,我已经有了.

编辑:我不想使用硬编码密钥,我只是展示了一个示例调用解决方案.谢谢!^ _ ^

PHP 5.3快速抓取解决方案:

private function pluck($key, $data) {
    return array_reduce($data, function($result, $array) …
Run Code Online (Sandbox Code Playgroud)

php arrays associative-array array-reduce pluck

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