小编Pet*_*ter的帖子

如何将子值添加到新数组?

我有一个数组,每个包含值是另一个具有一个值的数组.我一直在寻找一种平整阵列并成功的方法,但不知何故,我有这种感觉,它可以做得更好.这是最好的方式还是可以改进?

<?php

$array = array(
    '1' => array('id' => '123'),
    '2' => array('id' => '22'),
    '3' => array('id' => '133'),
    '4' => array('id' => '143'),
    '5' => array('id' => '153'),
);

array_walk_recursive($array, function($v, $k) use (&$result) {
    $result[] = $v;
});
Run Code Online (Sandbox Code Playgroud)

php arrays multidimensional-array

2
推荐指数
1
解决办法
189
查看次数

PHP的DateTime是否支持其他格式/区域设置?

好吧,我猜这个问题非常明显.

如果我有:

$now = new DateTime();
print $now->format('l, M d');
Run Code Online (Sandbox Code Playgroud)

我可以用其他语言输出该日期吗?

php date

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

如何根据日期订购数组?

我有以下数组

$dates = array(
    '2015-02-13',
    '2015-04-21',
    '2015-08-18',
    '2015-11-26',
    '2015-09-15',
    '2015-01-07',
    '2015-02-11',
    '2015-07-14',
    '2015-03-02',
);
Run Code Online (Sandbox Code Playgroud)

我想从最久前到最近的日期对这个数组进行排序.

foreach ($dates as $date) {
    $date = new DateTime($date);
    // The logic I need
}
Run Code Online (Sandbox Code Playgroud)

你能救我吗?

编辑

我想指出日期格式可能会有所不同.为了详细说明,我在我的数据库日期格式为YYYY-MM-DD,YYYY/MM/DD,DD-MM-YYYYDD/MM/YYYY.

但正如下面建议的那样,我可以重新格式化日期并构建一个新数组.所以这可能不是问题.

php arrays date

-1
推荐指数
1
解决办法
762
查看次数

在数组中取消设置值后如何重置键?

采取以下数组:

$fruits = [
    'apple', 'banana', 'grapefruit', 'orange', 'melon'
];
Run Code Online (Sandbox Code Playgroud)

葡萄柚令人恶心,所以我想取消它。

$key = array_search('grapefruit', $fruit);
unset($fruit[$key]);
Run Code Online (Sandbox Code Playgroud)

葡萄柚不在我的$fruit数组中,但是我的键不再正确编号。

array(4) {
    [0] => 'apple'
    [1] => 'banana'
    [3] => 'orange'
    [4] => 'melon'
}
Run Code Online (Sandbox Code Playgroud)

我可以遍历该数组并创建一个新数组,但我想知道是否有更简单的方法来重置密钥。

php arrays

-2
推荐指数
1
解决办法
651
查看次数

如何在PHP中还原一个函数?

我正在建立一个小游戏,并陷入开发调平系统.我创建了一个函数,它将指数级地增加下一级所需的体验.但是,我不知道如何扭转它,以便我可以投入用户获得的经验并获得相应的级别.

PHP功能

function experience($level, $curve = 300) {

    // Preset value to prevent notices
    $a = 0;

    // Calculate level cap
    for ($x = 1; $x < $level; $x++) {
        $a += floor($x+$curve*pow(2, ($x/7)));
    }

    // Return amount of experience
    return floor($a/4);
}
Run Code Online (Sandbox Code Playgroud)

问题

我想知道如何对这个函数进行逆向工程,以便为一定的经验返回正确的级别.

使用上面的函数,我的代码将输出以下内容:

Level 1: 0
Level 2: 83
Level 3: 174
Level 4: 276
Level 5: 388
Level 6: 512
Level 7: 650
Level 8: 801
Level 9: 969
Level 10: 1154
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一种方法来反转这个功能,以便我可以输入一定数量,它将返回相应的水平.

例如,1000经验应该返回9级.

php algorithm math

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

标签 统计

php ×5

arrays ×3

date ×2

algorithm ×1

math ×1

multidimensional-array ×1