Tho*_*wes 1 php conditional codeigniter
我遇到了一个小问题,我只是在寻找有关最佳实践的建议.
我有一个脚本从外部网页获取一些数据.有时这些数据不完整.
例如我可能有
$array=array('name'=>'Bob Smith','address'=>array('0'=>'My address'),'phone'=>'000000');
Run Code Online (Sandbox Code Playgroud)
然后我将此数据设置为另一个数组以插入到我的数据库中.例如
$data=array('name'=>$array['name'],'address'=>$array['address']['0'],'phone'=>$array['phone']);
Run Code Online (Sandbox Code Playgroud)
但是,如果没有找到地址,则不设置$ array ['address'] ['0'],因此使用它创建第二个数组会在CodeIgniter中创建错误.虽然在正常的程序编码中没有显示错误,但我认为CI有这个错误表明解决它是一种最佳实践.
所以..我假设解决这个问题的最好方法是使用条件并检查$ array ['address'] ['0']是否在添加到$ data数组之前设置.那是对的吗?如果不是,则将null插入数据库.
嵌套问题是当我从数据库获取数据以显示它时.我想爆炸地址的行并输出它们,但如果没有再次设置,则codeigniter会抛出错误.同样,通过条件语句可以轻松避免.
我的问题主要在于处理,插入和输出数据,其中有许多变量可能会或可能不会设置,我需要看似有负载和条件语句的负载.
我认为实际上这不是问题,但我喜欢我的代码尽可能短而简洁.我错过了什么吗?
干杯
你知道可以退回的所有钥匙吗?在这种情况下
$allowed_keys = array('name', 'address');
$new_data = array();
foreach ($allowed_keys as $key) {
$new_data[$key] = isset($data[$key]) ? $data[$key] : null;
}
Run Code Online (Sandbox Code Playgroud)
您还可以在foreach循环中为某些键添加格式
if ($key == 'address') {
$new_data[$key] = isset($data[$key]) ? implode(', ', $data[$key]) : null;
continue;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
200 次 |
| 最近记录: |