php>数组处理:良好的面向对象库?

时间:2017-09-08 13:13:13

标签: php arrays

在我作为php开发人员的日常工作中,我发现自己在这里&再次处理数组。

鉴于:

$array1; // array to process
$keysToKeep         = ['k1', 'k2', 'k3'];
$keysToTranslate    = ['k1' => 'hello1'];
$keysToLower        = ['k2', 'k3'];

流程的典型示例是:

$arrayProcessed = [];
foreach ($array1 as $k => $v) {
    if (array_key_exists($k, $keysToKeep) {
        $arrayProcessed[$k] = $v;
    }
    if (isset($keysToTranslate[$k]) ) {
        $arrayProcessed[$keysToTranslate[$k]] = $v;
        unset($arrayProcessed[$k]);
    }
}
foreach ($keysToLower AS $k) {
    if ($array_key_exists($k, $arrayProcessed) ) {
        $arrayProcessed[$k] = strtolower($array1[$k]);
    }
}

我梦见一个能让我写这个的api:

$arrayProcessed = owArray::getInstance($array1)
->keepKeys($keysToKeep)
->renameKeys($keysToTranslate)
->map($keysToLower, 'strtolower')
;

有人能指出我走向那个方向的图书馆吗?

提前获取任何提示; - )

1 个答案:

答案 0 :(得分:0)

Laravel非常棒Collections。使用它们你想要做的事情可以这样写:

array(3) {
  ["k1"]=>
  string(6) "Hello1"
  ["k2"]=>
  string(3) "bar"
  ["k3"]=>
  string(3) "baz"
}

结果将是:

$keysToLower

我几乎可以确定最后一部分(关于case)可以写得更短。

"Refactoring to Collections"有一本书和一门课程Adam Wathan。虽然它们不是免费的,但值得一试。