0
我有一个数组。CakePHP并设置:结合默认值
在某个阶段,我增加了更多的数据。
因此,我们有:
$editable = someArrayGeneratingFunctionHere();
$points = preg_split('/,/',$this->data['Video']['points']);
可爱。现在,“points”数组有一堆数据,可能已经或可能不在编辑数组中。 我想要的是检查数据是否处于可编辑状态,如果不是,请添加。 我也想有效地做到这一点。
所以,我有这样的方法:
private function associateWithRelatedBodyParts($editable, $keysAlreadyPresent, ...){
$point = getOtherPointsThatAreRelatedToThisPoint();
if (!isset($keysAlreadyPresent[$point])){
insertDataIntoEditable();
} //else the value is already here. Do not add it again!
return $editable;
}
所以整个事情是这样的:
$editable = someArrayGeneratingFunctionHere();
$points = preg_split('/,/',$this->data['Video']['points']);
$valuesInEditable = ...
foreach ($points as $point){
$editable = $this->associateWithRelatedBodyParts($editable, $valuesInEditable,...);
}
设置什么了很多!所有这一切的点如下:
我想扁平化原始的$ editable数组,因为这样,我可以快速测试一个点是否处于可编辑状态。如果不是,我会添加它。
我以检索的valuesInEditable阵列电流的方法是
$valuesInEditable = Set::combine($editable, 'BodyPartsVideo.{n}.body_part_id','BodyPartsVideo.{n}.body_part_id');
这是鲁钝。我将坚持相同的值两次到数组中。我真正喜欢的只是:
$valuesInEditable = Set::combine($editable, 'BodyPartsVideo.{n}.body_part_id',True);
或类似的东西。所以这个问题的整个观点是:
我该如何设置一个默认值,使用Set:combine in cakephp。如果你有更好的建议,我很乐意听到它。