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。如果你有更好的建議,我很樂意聽到它。