Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 过度使用条件语句?_Php_Codeigniter_Conditional - Fatal编程技术网

Php 过度使用条件语句?

Php 过度使用条件语句?,php,codeigniter,conditional,Php,Codeigniter,Conditional,我遇到了一个小问题,我只是在寻找一些关于最佳实践的建议 我有一个脚本,可以从外部网页获取一些数据。有时这些数据并不完整 例如,我可能有 $array=array('name'=>'Bob Smith','address'=>array('0'=>'My address'),'phone'=>'000000'); 然后,我将这些数据设置到另一个数组中,以插入到我的数据库中。 例如 但是,例如,如果未找到地址,则未设置$array['address']['0'],因此使用它

我遇到了一个小问题,我只是在寻找一些关于最佳实践的建议

我有一个脚本,可以从外部网页获取一些数据。有时这些数据并不完整

例如,我可能有

$array=array('name'=>'Bob Smith','address'=>array('0'=>'My address'),'phone'=>'000000');
然后,我将这些数据设置到另一个数组中,以插入到我的数据库中。 例如

但是,例如,如果未找到地址,则未设置$array['address']['0'],因此使用它创建第二个数组会在CodeIgniter中创建错误。虽然在正常的过程编码中不会显示错误,但我假设CI会显示此错误,因为解决它是最佳实践

所以。。我认为解决这个问题的最佳方法是使用条件并在将$array['address']['0']添加到$data数组之前检查是否设置了$array['address']['0']。对吗? 如果不是,则将null插入数据库

嵌套问题是当我从数据库获取数据以显示它时。 我想分解地址行并输出它们,但如果不重新设置,codeigniter就会抛出一个错误。同样,使用条件语句很容易避免

我的问题本质上是在处理、插入和输出数据的过程中,如果有许多变量可以设置,也可以不设置,我似乎需要一堆又一堆的条件语句

我想实际上这不是问题,但我希望我的代码尽可能简短。我错过什么了吗


干杯

你知道所有可能归还的钥匙吗?那么

$allowed_keys = array('name', 'address');
$new_data = array();
foreach ($allowed_keys as $key) {
    $new_data[$key] = isset($data[$key]) ? $data[$key] : null;
}
您还可以在foreach循环中为某些键添加格式

if ($key == 'address') {
    $new_data[$key] = isset($data[$key]) ? implode(', ', $data[$key]) : null;
    continue;
}

你知道所有可能归还的钥匙吗?那么

$allowed_keys = array('name', 'address');
$new_data = array();
foreach ($allowed_keys as $key) {
    $new_data[$key] = isset($data[$key]) ? $data[$key] : null;
}
您还可以在foreach循环中为某些键添加格式

if ($key == 'address') {
    $new_data[$key] = isset($data[$key]) ? implode(', ', $data[$key]) : null;
    continue;
}

这似乎是处理插入方面的一种完美方式,但接下来如何显示数据呢。正确的方法是使用大量条件句吗?:)您可以使用完全相同的逻辑,只需将数据库结果设置为
$data
。如果在显示数据时需要不同的格式,则可能需要对其进行一些修改。这似乎是处理插入方面的一种完美方法,但接下来如何显示数据呢。正确的方法是使用大量条件句吗?:)您可以使用完全相同的逻辑,只需将数据库结果设置为
$data
。如果在显示数据时需要不同的格式,可能需要对其进行一些修改。